1
3
一般来说,为了对一些文本进行分类,你需要运行具有不同先验(在你的情况下是正的和负的)的朴素贝叶斯,然后只选择一个能产生更大价值的先验。 This excerpt 来自马胡特的书中有一些例子。请参见清单2:
这里的结果应该有“阳性”或“阴性”的标签。 |
2
1
我不确定我能否完全帮助你,但我希望我能给你一些切入点。一般来说,我给你的建议是下载Mahout的源代码,看看示例和目标类是如何实现的。这不是那么容易,但你应该准备好,马胡特没有容易的入口。但一旦你进入他们,学习曲线就会很快。 首先,这取决于您正在使用的Mahout版本。我自己使用0.7,所以我的解释将是关于0.7。
这里发生了什么: 1) 首先,你通过trainnb加载你得到的模型。这个模型保存在您在调用trainnb时使用-o参数指定的位置。模型是.bin文件。 2) StandardNaiveBayes分类器是使用您的模型创建的 3) RawEntry是我的自定义类,它只是我数据的原始字符串的包装器。toNaiveBayesTrainingFormar获取我想要分类的字符串,根据我的需要从中去除噪声,并简单地返回一个字符串“word1 word2 word3 word4”。因此,我的未分类原始字符串被转换为适用的格式进行分类。 4) 现在,由于分类器输入仅在Vector中,因此需要将特征字符串编码为Mahout的Vector 5) 将向量传递给分类器-魔术。 这是第一部分。现在,分类器返回Vector,其中包含具有概率的类(在您的情况下是情感)。您需要特定的输出。最简单的实现方式(但我认为不是最高效和最时尚的)是下一步: 1) 创建地图缩减作业,该作业将遍历所有要分类的数据 2) 对于您调用分类方法的每个实例(不要忘记做一些更改,不要为每个实例创建StandardNaiveBayesClassifier) 3) 有了分类结果向量,你可以在地图reduce作业中以任何格式输出数据 4) 这里有用的设置是jC.set(“mapreduce.textoutputformat.separator”,“”);其中,jC是JobConf。这允许您从mapreduce作业中为输出文件选择分隔符。在您的情况下,这是“,”。 同样,这一切都适用于Mahout 0.7。不能保证它会对你有效。不过它对我有效。 总的来说,我从来没有从命令行使用过Mahout,对我来说,从Java使用Mahout是最好的选择。 |
João Rocha da Silva · 基于NodeJS的网站推荐框架 10 年前 |
user2148249 · Mahout群集未读取输入 11 年前 |
Vanitha Reddy · 情绪分析的Mahout 11 年前 |
Javier Manzano · 我应该用马霍特吗? 11 年前 |
Sap · 简单的Mahout分类示例 11 年前 |