我目前正在尝试使用mahout。我购买了Mahout in Action一书。 整个过程是理解的,通过简单的测试数据集,我已经成功了。
现在我有一个我想解决的分类问题。
找到了目标变量,我现在称之为 - 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等?
感谢您的帮助!
答案 0 :(得分:0)
你不应该在seq文件中存储结构,只是转储你用空格分隔的所有文本,
它只是放置所有内容进行计算的地方,例如在使用像朴素贝叶斯这样的东西时,它不关心结构。
然后,当您进行分类时,请在数据库中查找结构。