我建立涉及自然语言处理的一个项目,因为NLP模块目前只能与英文文本处理,所以我必须要确保用户提交的内容(不长,只有几个单词)是英文。是否有既定的方式来实现这一目标? Python或Java脚本的方式是优选的。

有帮助吗?

解决方案

如果内容足够长的时间,我建议一些频率分析上的字母

但几句话,我认为最好的办法是把它们比作一本英语词典并接受输入,如果其中的一半相匹配。

其他提示

我觉得最有效的方法是要求用户提交英文文本仅:)

您可以显示在英语/其他的选项你的文本区域语言选择下拉。当用户选择了“其他”,禁用与只英语被支撑[此刻]的消息文本区。

谷歌有具有语言检测的实现一个javascript API。我只玩测试它,从来没有使用过的生产。

http://code.google.com/apis/ajaxlanguage/documentation/ #Detect

尝试基于n-gram中的统计语言识别。这是一个链接使用这种技术的算法的演示,也有到那里描述算法的论文的链接。尝试演示,它在非常短文本(3-4个字)进行比较以及甚至

您已经在做NLP,如果你的模块没有理解原文是什么语言那么无论是模块不能正常工作或输入不正确的语言。

尝试:

http://wordlist.sourceforge.net/

有关的英语单词的列表。

您将需要小心的名字,例如“堪培拉”或“比尔·克林顿”。这些将不会出现在单词列表。我建议只是检查的首字母是否是大写的第一次尝试。

字典切换 Firefox扩展具有一个选项,以检测正确的字典为I型。结果 我想它检查字靠在安装的字典,并选择一个给出较少错误...

您不能指望文本的所有单词是在词典:缩写,专有名词,错别字......旁边,有些话是常见的几种语言:法国摇滚乐队甚至提出自己的磁盘的职称有一个(不同的)的含义法语和英语。所以这是一个统计的事情:如果的话超过X%在一个良好的英语字典中发现,机会是用户在该语言(即使有错误,比如可能是这个答案,因为我不是以英语为母语)

也许“确保用户只提交英文文本[PHP] ”文章会帮助你。该代码被写在PHP,但足够小以被容易地改写。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top