我遇到的情况是我给了一个字符串,需要确定字符串的语言是西班牙语还是英语。我打算解析停用词 - 西班牙语(`de,es,si,y')vs英语('of','is','if','和')?如果西班牙语出现的次数多于英语出现次数,那么,我的结论是该页面是西班牙语。
是否有任何Ruby代码段可用于执行此操作?如果没有,那么用于字符串解析或正则表达式的好方法是什么?
答案 0 :(得分:1)
如果您的字符串包含句子(或至少包含一系列单词),则可以使用string.split(' ')
将字符串拆分为单词数组。从那里,您可以使用.each
遍历列表并处理每个单词。例如:
def detect_language(sentence)
english_count = 0
spanish_count = 0
sentence.split(' ').each {|word|
if looks_like_english(word)
english_count += 1
elsif looks_like_spanish(word)
spanish_count += 1
end
}
retval = ["spanish", "unknown", "english"]
retval[(english_count <=> spanish_count) + 1]
end
答案 1 :(得分:0)
我有相同任务的经验。并且经过几天的讨论后决定拒绝正则表达式/文本解析解决方案。
现在我使用支持自动检测语言的翻译网络服务器(如google,bing,...)。我认为这是解决问题的最佳方法(当然,如果条件允许的话)