使用 PHP 进行文本挖掘 [已关闭]

2022-08-30 18:35:19

我正在为我正在上大学的一门大学课做一个项目。

我正在使用PHP构建一个简单的Web应用程序,该应用程序根据一组字典将推文分类为“积极”(或快乐)和“消极”(或悲伤)。我现在想到的算法是朴素贝叶斯分类器或决策树。

但是,我找不到任何可以帮助我进行一些严肃语言处理的PHP库。Python有NLTK(http://www.nltk.org)。PHP有类似的东西吗?

我计划使用WEKA作为Web应用程序的后端(通过在PHP中调用Weka在命令行中),但它似乎并不那么有效。

你知道我应该为这个项目使用什么吗?或者我应该切换到Python?

谢谢


答案 1

如果你要使用一个朴素贝叶斯分类器,你真的不需要一整吨的NL处理。你所需要的只是一个算法来阻止推文中的单词,如果你愿意,可以删除停止词。

词干算法比比皆是,编码起来并不困难。删除停用词只是搜索哈希映射或类似内容的问题。我没有看到切换开发平台以适应NLTK的理由,尽管它是一个非常好的工具。


答案 2

不久前我做了一个非常相似的项目 - 只对RSS新闻项目而不是twitter进行分类 - 也使用PHP作为前端,WEKA用于后端。我使用的是PHP / Java Bridge,它使用起来相对简单 - 在Java(WEKA)代码中添加了几行,它允许PHP调用其方法。以下是他们网站上PHP端代码的示例:

<?php 
require_once("http://localhost:8087/JavaBridge/java/Java.inc");

$world = new java("HelloWorld");
echo $world->hello(array("from PHP"));
?>

然后(正如有人已经提到的那样),你只需要过滤掉停止词。为此保留一个txt文件对于添加新单词非常方便(当您开始过滤掉不相关的单词并解释拼写错误时,它们往往会堆积起来)。

朴素贝叶斯模型具有很强的独立特征假设,即它不考虑通常配对的单词(例如成语或短语) - 只是将每个单词作为独立的实例。但是,它可以胜过一些更复杂的方法(例如词干,IIRC),并且应该非常适合大学课程,而不会使其变得不必要的复杂。


推荐