2017-03-07 76 views
-6

テキスト(特にInstagramのコメント)が英語以外であるかどうかを検出する最も正確な方法は何ですか?私はテキストが英語以外であるかどうかの検出

などのPython、PHP、として、
$ sudo pip2 install guess_language 
>>> from guess_language import guessLanguage 
>>> guessLanguage('la vita e bella') 
'UNKNOWN' 
>>> guessLanguage('today is a good day') 
'UNKNOWN' 
>>> guessLanguage('ボウリング・フォー・コロンバイン(字幕版)') 
'ja' 

任意の高レベルの言語を使用して幸せと

$ sudo apt-get install php5.6-mbstring 

     if(strlen($comment->text) == mb_strlen($comment->text, 'utf-8')) { 
     echo '- '.$comment->text."\n"; 
    } 

と私は英語ではありません英語の文字で多くのものを得る: 例:

- Khoda be khanevadehashon sabr bede tahamol konan 
- Akhey... 
- Eshghi 
- K 
- :-) 
- Ey khodaa 
- ... 
- @samaneaghazamani1990 vaaaaay khoda chejoori payam dadan? 
- :(
- Elahiiiii 
- May Allah please with them and grant higher rank of jannah salutes to the bravehearts @taraneh_alidoosti @fanpagemostafazamani 
- Elaaaahiii 
- Roohetoon shad. 
- :'(
- Roheshon shad!! Yadeshon gerami!! 
- .:'(
- :-(
- Oooo 
- Awli 

私は、大量のデータを取り扱っておりますようGoogle翻訳のようなものを使用する必要はありません。

更新:

$ sudo pip2 install langdetect 
>>> from langdetect import detect 
>>> detect("War doesn't show who's right, just who's left.") 
'en' 
>>> detect("today is a good day.") 
'so' 
>>> detect("la vita e bella!") 
'it' 
>>> detect("khoobi? khoshi?") 
'so' 
>>> detect("wow") 
'pl' 
>>> detect("what a day") 
'en' 
>>> detect("yay!") 
'so' 

ん 'ので、' 未知を参照してください?私はtoday is a good dayenと考えられることを期待していました!

+0

トリグラムは通常、かなり短いテキストでも十分です。 – pvg

+2

参照:https://pypi.python.org/pypi/langdetect/1.0.1 –

+0

@JuanTアップデートをご覧ください! –

答えて

-4

スペルチェッカーを使うことをお勧めします。単語が言語に属していない場合は、スペルが返されます。これを使って、単語が英語かどうかを判断します。 オープンソースのスペルチェッカーは次のとおりです。http://aspell.net/

すべてのOSにスペルチェックが組み込まれています。これらも同様に使用できます。

+1

言葉の綴り(たとえば、記念品のような英語の単語)は、それが属する言語に正確に対応する必要はありません(お土産はフランス語の動詞でもありますが、正確にはスペルチェックできません)。 – Jerrybibo

+2

あります英語と他の言語に共通する言葉もありますので、スペルチェッカーを使って英語の単語の正当性をチェックすることはできません。たとえば、*ランデブー*は[英語](https://www.merriam-webster.com/dictionary/rendezvous)と[フランス語](http://dictionary.reverso.net/french-english/rendez)にあります。それはフランス語の言葉ですが、 – rayryeng

5

ployglotパッケージの言語検出機能を使用できます。

>>> from polyglot.detect import Detector 
>>> print(Detector('today is a good day.').language) 
name: English  code: en  confidence: 95.0 read bytes: 1792 
+0

*ありがとうございました。langidが良いのか、polyglot.detectが一般的であるのか、どうすればわかりますか? –

+3

私は彼らの誰もが完全に言語を検出したとは思わない。どちらが良いかを判断するには、両方でいくつかのテストを実行する必要があります。 Polyglotには、混在したテキストなどで検出するようないくつかの追加機能があります。 – Rohanil

関連する問題