Apache Mahout - 从String读取首选项值

时间:2017-03-21 01:14:38

标签: hadoop mahout

我的情况是我有一个由经典的UserID,ItemID和首选项值组成的数据集,但它们都是字符串。

我已经设法通过覆盖FileDataModel类(它是Mahout库的一部分)中的readItemIDFromString()和readUserIDFromString()方法来读取UserID和ItemID字符串但是,似乎没有任何支持转换如果我没有弄错的话,我会选择偏好值。

如果有人对这个问题的解决方法有什么意见,我会非常感激。

为了说明我的意思,这里是我的UserID字符串的示例"转换":

benefitID

AbstractIDMigrator的实现:

@Override
protected long readUserIDFromString(String value) {

    if (memIdMigtr == null) {
        memIdMigtr = new ItemMemIDMigrator();
    }

    long retValue = memIdMigtr.toLongID(value);
    if (null == memIdMigtr.toStringID(retValue)) {
        try {
            memIdMigtr.singleInit(value);
        } catch (TasteException e) {
            e.printStackTrace();
        }
    }
    return retValue;
}

String getUserIDAsString(long userId) {
    return memIdMigtr.toStringID(userId);
}   

1 个答案:

答案 0 :(得分:0)

Mahout正在弃用基于Hadoop的旧推荐器。基于一种称为相关交叉发生(CCO)的新算法,我们提供了更加现代化的产品。它使用Spark构建,速度提高了10倍,并在与查询服务器结合使用时提供实时查询结果。

此方法为user-id和item-id提取字符串,并生成具有相同ID的结果,因此您不再需要管理这些字符串。你真的应该看看新系统,不知道旧系统将被支持多长时间。

Mahout docs:http://mahout.apache.org/users/algorithms/recommender-overview.html和此处:http://mahout.apache.org/users/recommender/intro-cooccurrence-spark.html

所描述的整个系统,包括SDK,输入存储,模型和实时查询的培训,是Apache PredictionIO项目的一部分,也是PIO和“Universal Recommender”的文档,在这里:http://predictionio.incubator.apache.org/在这里: http://actionml.com/docs/ur