gar*_*c40 22 php nlp data-mining nltk weka
我正在为我正在上大学课做一个项目.
我正在使用PHP构建一个简单的Web应用程序,根据一组字典将推文分类为"积极"(或快乐)和"消极"(或悲伤).我现在想到的算法是朴素贝叶斯分类器或决策树.
但是,我找不到任何帮助我进行严肃语言处理的PHP库.Python有NLTK(http://www.nltk.org).PHP有什么类似的吗?
我打算使用WEKA作为Web应用程序的后端(通过在PHP中从命令行调用Weka),但它看起来效率不高.
你知道我应该为这个项目使用什么吗?或者我应该切换到Python?
谢谢
如果你打算使用朴素贝叶斯分类器,你真的不需要大量的NL处理.您只需要一个算法来阻止推文中的单词,如果需要,可以删除停用词.
词干算法比比皆是,编码也不难.删除停用词只是搜索哈希映射或类似的问题.虽然这是一个非常好的工具,但我认为没有理由将开发平台切换到容纳NLTK.
我刚才做了一个非常相似的项目 - 只对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"));
?>
Run Code Online (Sandbox Code Playgroud)
然后(正如某人已经提到的那样),你只需要过滤掉停用词.为此添加一个txt文件对于添加新单词非常方便(当你开始过滤掉不相关的单词并考虑打字错误时,它们会堆积起来).
朴素贝叶斯模型具有强烈的独立特征假设,即它不考虑通常配对的单词(例如成语或短语) - 只是将每个单词作为独立的出现.然而,它可以胜过一些更复杂的方法(例如词干,IIRC),并且对于大学课程来说应该是完美的,而不会让它变得不必要复杂.
| 归档时间: |
|
| 查看次数: |
16428 次 |
| 最近记录: |