7

この質問が何度も聞かれることは知っていましたが、「利用可能な」解決策ではまだ解決できませんでした。私の文がPythonで英語であることを検出する方法について、さらにアイデアや概念を得たいと思っています。利用可能な解決策:

  • 言語検出器 (Python ではなく Ruby で :/)
  • Google Translate API v2 (無料ではなくなりました。学術目的でこのプロジェクトを行っている間、月に 20 ドルを支払う必要があります。礼儀の制限: 0 文字/日 )
  • Python の言語識別 (ソース コードが見つかりません。リンクは以下にあります。automatic-language-identification )
  • Enchant (それは python 2.7 用ではありませんか?私は python を初めて使用しますが、ガイドはありますか?これは私が必要とするものだと確信しています)
  • NLTK の Wordnet (「wordnet.synsets」が見つからず、「wordnet.Synset」しか利用できない理由がわかりません。ソリューションのサンプル コードも機能しません T_T、おそらくバージョン管理の問題が再び発生しましたか?)
  • 英単語をリストに保存し、単語が存在するかどうかを比較します (はい、文章が Twitter からのものである場合、それはちょっと悪いアプローチです.. あなたはそれを知っていました:P)

ワーキングソリューション

最後に、一連の試行の後、以下は実用的な解決策です(上記のリストの代替)

  • ウィクショナリー API (Urllib2 と simplejson を使用して解析します。キーが -1 であるかどうかを調べると、単語が存在しないことを意味します。それ以外の場合は英語です。もちろん、Twitter で使用するには、単語を前処理して @ のような特殊文字を使用しないようにする必要があります#,?!. キーの見つけ方はこちらを参考に. Simplejson とランダムなキー値)
  • Dogukan Tufekci からの回答 (Ticked) (弱点: 20 文字未満の文で PyEnchant をインストールする必要がある場合、または UNKNOWN が返されるとしましょう。PyEnchant は Python 2.7 をサポートしていませんが、20 文字未満ではインストールできず、動作しないことを意味します)文字文)

参考文献

4

2 に答える 2

8

Miguel Grinber の The Flask Mega Tutorialで見つけたguess_languageライブラリを試すことができます。Python 2 と 3 をサポートしているように見えるので、問題ないはずです。

于 2013-03-07T00:49:41.247 に答える
1

隠れマルコフモデルを使用して言語を検出できる場合があります。各言語には独自の特性があります。

于 2013-03-07T00:42:59.063 に答える