0

I'm in a situation where I'm given a character string and need to determine if the language of the string is Spanish or English. I plan on parsing for stop words - Spanish (`de, es, si, y") vs English ('of', 'is', 'if', 'and')? If there more Spanish occurrences than English occurrences, then, I conclude the page is Spanish.

Are there any Ruby snippets already available to do this? If not, what would be good method for string parsing or regex to do this?

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

同じ仕事の経験があります。そして、数日間の議論の後、正規表現/テキスト解析ソリューションを拒否することにしました.

現在、言語の自動検出をサポートする翻訳 Web サーバー (google、bing など) を使用しています。それを解決するための最良の方法だと思います(もちろん、条件が許せば)

于 2012-04-28T23:30:48.460 に答える