0

当我在 Mahout 中的 itemBasedRecommender 的训练数据中使用字符串值属性时,我得到一个 NumberFormatException,它在从文件中的数据构建 FileDataModel 期间抛出。如果字符串属性值为“1.0”,它基本上是一个表示为字符串的数字,那么它不会抛出 NumberFormatException。但如果属性值为“Washington”,则抛出 NumberFormatException。是否有任何解决方案可以在 Mahout 的 Recommenders 的训练数据中将字符串属性值(如“Washington”)作为 itemID/userID 传递?我正在使用 Java 1.6SE、Mahout 0.7 和 Hadoop 1.2。

4

2 回答 2

1

Mahout 推荐器并不真正使用字符串,通常您会使用长数字来代替。在将数据传递给推荐器之前,您必须将每个用户和每个项目映射到一个唯一的编号,并且在推荐器之后,您必须映射回原始编号。

有一种解决方法,您可以使用IDMigrator该类,但如果我没记错的话,在分布式版本中不支持此功能,只有内存实现。

另一个问题的这个答案也可能对您有所帮助(链接

于 2013-07-11T08:50:24.427 回答
1

我在 Long 和 Float 数据类型方面取得了成功。字符串不是强类型语言(如 Java)中的数字。在某些数据模型中,有适合 Mahout 数据类型的转换函数,或者您也可以使用 String.toLong() 或 asLong() 值来传递所需的值

于 2013-07-30T07:43:53.507 回答