加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 确定文本可能语言的算法

发布时间:2020-12-13 22:49:07 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找一个简单的算法或开源库( PHP),允许估计文本是否主要使用特定的语言.我找到了与 Python相关的 following answer,这可能导致了正确的方向.但对于PHP来说,开箱即用的东西将是一种魅力. 当然,像n-gram估计器这样的东西实现起来并不难,但它也需要一个
我正在寻找一个简单的算法或开源库( PHP),允许估计文本是否主要使用特定的语言.我找到了与 Python相关的 following answer,这可能导致了正确的方向.但对于PHP来说,开箱即用的东西将是一种魅力.

当然,像n-gram估计器这样的东西实现起来并不难,但它也需要一个参考数据库.

要解决的实际问题如下.我运行一个WordPress博客,目前被垃圾邮件淹没.该博客采用德语,几乎所有引用垃圾邮件都是英语.我的想法是立即垃圾邮件似乎是英语的所有引用.但是,我不能使用标记词,因为我不想垃圾邮件或引用.

我的解决方案

使用这个问题的答案,我实现了一个解决方案,它通过简单的禁用词比率检测德语.任何评论必须包含至少25%的德语停用词,如果它有链接.因此,您仍然可以评论类似“酷文章”的内容,它根本没有停用词,但如果您放置链接,则应该费心去编写正确的语言.

不幸的是,NLTK的停用词不正确.该列表包含德语中不存在的单词.所以我使用了snowball列表.使用Perl regexp optimizer我将整个列表压缩成一个正则表达式,并使用preg_match_all()计算停用词.整个过滤器是25行,是从列表中生成正则表达式的Perl代码的三分之一.让我们看看它在野外的表现.

谢谢你的帮助.

解决方法

我同意@Thomas的意见,你所寻找的是垃圾邮件分类器而不是语言检测算法.尽管如此,我认为这种语言检测解决方案非常简单,并且可以随意使用.基本上,如果你计算不同语言中的停用词的数量并在文档中选择具有更多数量的语言,你就会得到一个简单但非常有效的语言分类器.

现在,最好的部分是您几乎不需要编码任何代码,因为您可以使用标准的停用词列表和处理包(如nltk)来处理信息. Here你有一个如何使用Python和nltk从头开始实现它的例子.

我希望这有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读