我现在正试着和mahout一起玩。我买了《马胡特在行动》一书。整个过程都被理解了,通过简单的测试数据集,我已经成功了。
现在我有一个分类问题,我想解决。
找到了目标变量,我现在调用它-x。我们数据库中的现有数据已经被分类为-1、0和+1。
我们定义了几个预测器变量,并通过SQL查询进行选择。
这些是产品的属性:语言、国家、类别(商店)、标题、描述。
现在,我希望它们直接写在SequenceFile中,为此我编写了一个小助手类,每次处理SQL结果集的新行时,该类都会附加到序列文件中:
public void appendToFile(String classification, String databaseID, String language, String country, String vertical, String title, String description) {
int count = 0;
Text key = new Text();
Text value = new Text();
key.set("/" + classification + "/" + databaseID);
//??value.set(message);
try {
this.writer.append(key, value);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如果我只有标题左右,我可以简单地将其存储在值中——但我如何将country、lang等多种值存储在特定的密钥中?
谢谢你的帮助!
您不应该将结构存储在seq文件中,只需转储用空格分隔的所有文本,
它只是一个放置所有内容进行术语计数的地方,因此当使用Naive Bayes之类的东西时,它不关心结构。
然后,当您进行分类时,请在数据库中查找结构。