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