如何确保用户只提交英文文本

时间:2008-10-13 07:32:13

标签: javascript python nlp

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

10 个答案:

答案 0 :(得分:7)

如果内容足够长,我会在字母上建议一些frequency analysis

但是,我认为最好的办法是将它们与英文词典进行比较,如果其中一半匹配则接受输入。

答案 1 :(得分:6)

答案 2 :(得分:5)

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

您可以在文本区域显示语言选择下拉菜单,其中包含英语/其他选项。当用户选择“其他”时,请禁用文本区域,并显示仅支持英语的消息[此时]。

答案 3 :(得分:5)

Google有一个javascript API,它具有语言检测功能。我只玩过测试,从未在生产中使用它。

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

答案 4 :(得分:3)

尝试基于n-gram的统计语言识别。这是使用这种技术的算法演示的link,还有一个链接到描述那里算法的论文。尝试演示,即使在非常短的文本(3-4个单词)上也能很好地完成。

答案 5 :(得分:3)

你已经在做NLP,如果你的模块不懂文本的语言,那么模块不起作用或输入的语言不正确。

答案 6 :(得分:1)

尝试:

http://wordlist.sourceforge.net/

获取英文单词列表。

您需要注意名称,例如“堪培拉”或“比尔克林顿”。这些不会出现在单词列表中。我建议只检查第一个字母是否首次大写。

答案 7 :(得分:0)

您可以将短语分解为单词并检查字典(有些可以下载,this可能会感兴趣),但这需要您使用的字典足够好。

它也适用于专有名词(例如我的名字不在字典中)。

答案 8 :(得分:0)

Dictionary Switcher Firefox扩展程序可以选择在我输入时检测正确的字典 我猜它会检查已安装字典的单词,并选择一个给出较少错误的单词...

你不能指望文本中的所有单词都在字典中:缩写,专有名词,拼写错误......除此之外,有些单词在几种语言中很常见:法国摇滚乐团甚至将其磁盘的标题设置为具有法语和英语的(不同)含义。所以这是一个统计学的事情:如果在一本好的英语词典中找到超过x%的单词,那么用户可能会输入这种语言(即使有错误,例如可能在这个答案中,因为我不是英语母语)

答案 9 :(得分:0)

也许“Ensuring that the user submits only English text [PHP]”文章会对您有所帮助。代码是用PHP编写的,但是很小,很容易重写。