0

我遇到了一个字符串,需要确定字符串的语言是西班牙语还是英语。我计划解析停用词 - 西班牙语 (`de, es, si, y") 与英语 ('of', 'is', 'if', 'and')?如果西班牙语出现的次数多于英语出现次数,那么,我断定该页面是西班牙语。

是否有任何可用的 Ruby 片段来执行此操作?如果不是,那么字符串解析或正则表达式的好方法是什么?

4

2 回答 2

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
于 2012-04-27T22:37:13.560 回答
0

我有相同任务的经验。经过几天的讨论,决定拒绝正则表达式/文本解析解决方案。

现在我使用支持自动检测语言的翻译网络服务器(如 google、bing、...)。我认为这是解决它的最佳方法(当然,如果您的条件允许)

于 2012-04-28T23:30:48.460 回答