2017-03-07 157 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 Translate之类的东西,因为我正在处理大量数据。

更新:

$ 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 day被认为是en

+0

卦通常就够了,即使是相当短的文本。 – pvg

+2

请参阅:https://pypi.python.org/pypi/langdetect/1.0.1 –

+0

@JuanT请参阅更新! –

回答

-4

我建议你使用拼写检查器。如果单词不属于某种语言,它将返回拼写错误。用它来确定一个单词是否是英语。 这是一个开源拼写检查器:http://aspell.net/

每个操作系统都内置了拼写检查。您也可以使用这些拼写检查器。

+1

单词的拼写(例如,像纪念品这样的英文单词)并不一定与它属于哪种语言有关。(纪念品也是法语动词,本身不能完全“拼写检查”。) – Jerrybibo

+2

有也是英语和其他语言之间通用的词,因此您不能在此处使用拼写检查器来检查属于英语的单词的有效性。例如,* rendezvous *在[English](https://www.merriam-webster.com/dictionary/rendezvous)和[French](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有一些额外的功能,如通过混合文本等进行检测。我不确定它可以通过langid来完成。 – Rohanil