我遇到了一个字符串,需要确定字符串的语言是西班牙语还是英语。我计划解析停用词 - 西班牙语 (`de, es, si, y") 与英语 ('of', 'is', 'if', 'and')?如果西班牙语出现的次数多于英语出现次数,那么,我断定该页面是西班牙语。
是否有任何可用的 Ruby 片段来执行此操作?如果不是,那么字符串解析或正则表达式的好方法是什么?
我遇到了一个字符串,需要确定字符串的语言是西班牙语还是英语。我计划解析停用词 - 西班牙语 (`de, es, si, y") 与英语 ('of', 'is', 'if', 'and')?如果西班牙语出现的次数多于英语出现次数,那么,我断定该页面是西班牙语。
是否有任何可用的 Ruby 片段来执行此操作?如果不是,那么字符串解析或正则表达式的好方法是什么?
如果您有一个包含句子(或至少是一系列单词)的字符串,则可以使用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
我有相同任务的经验。经过几天的讨论,决定拒绝正则表达式/文本解析解决方案。
现在我使用支持自动检测语言的翻译网络服务器(如 google、bing、...)。我认为这是解决它的最佳方法(当然,如果您的条件允许)