この質問が何度も聞かれることは知っていましたが、「利用可能な」解決策ではまだ解決できませんでした。私の文が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 文字未満ではインストールできず、動作しないことを意味します)文字文)
参考文献