如何检测文本是否属于给定语言?

时间:2013-01-05 18:17:16

标签: spam-prevention language-detection

我有一种Q& A网站(非常近似)用户输入问题以供我们的工作人员回答。我非常担心用户发布非问题,这是一个烦恼。我认为最好的是一个系统来检测文本是否是意大利语(我们的用户的语言),如果是,检查它是不是针对常见copypastas列表的copypasta。

所以,长话短说:用户会输入一些文字,我必须确保这是一个意大利语的正确问题,而不是随机字符。

4 个答案:

答案 0 :(得分:1)

不确定您将使用哪种语言

http://www.easywayserver.com/blog/java-string-contains-example/

How do I check if a string contains a specific word in PHP?

检查输入字符串(问题)是否包含任何禁用词是一种方法。

伪码

ListOfForbiddenWords;
if Language = Italian
    if Input does not contain any of ListOfForbiddenwords
         //It's fine
    else
         //Don't spam
else
    //You're not Italian

不太确定检查字符串是否以特定语言编写的最佳方式

答案 1 :(得分:0)

如果您想要商业选项,可以使用Rosoka的语言检测。 您可以在Rosoka Cloud以每小时1美元的价格试用所有功能。语言ID作为独立库提供。因此,您可以提供您关注的示例输入,以查看它是否回馈您想要的内容。

像“jgujqkwfjpihoujlkfa”这样的随机文本将被标记为ROMANIZATION或基于底层代码块的标记,如果它不是ascii则使用。即不是语言的输入不会被标记为语言。

答案 2 :(得分:0)

有许多免费的语言检测库。一个流行的例子是来自LibreOffice的libexttextcat。如果你不想要一个C库,有很多克隆和端口以及变种;见例如http://odur.let.rug.nl/vannoord/TextCat/competitors.html表示(不完整的,稍微过时的)指针列表。

答案 3 :(得分:-1)

前一段时间问here类似的问题,答案列出了许多语言检测API解决方案。其中一个答案指向detectlanguage.com,提供有限的免费语言检测服务。