2013-07-11 3 views
0

Когда я использую атрибут string value в данных обучения для itemBasedRecommender в Mahout, я получаю NumberFormatException, которое создается во время создания FileDataModel из данных в файле. Если значение атрибута строки равно «1.0», которое в основном представляет собой число, представленное в виде строки, то оно не выбрасывает исключение NumberFormatException. Но если значение атрибута - «Вашингтон», то генерируется исключение NumberFormatException. Есть ли какое-либо решение, по которому я могу передавать значения атрибутов строки, такие как «Вашингтон», как itemID/userID в данных обучения для Рекомендаторов в Mahout? Я использую Java 1.6SE, Mahout 0.7 и Hadoop 1.2.NumberFormatException в Mahout при построении модели данных

ответ

1

Рекомендованные рекомендации Mahout на самом деле не работают со строками, как правило, вместо этого вы должны использовать длинные номера. Прежде чем передавать данные рекомендателю, вам нужно будет сопоставить каждого пользователя и каждый элемент с уникальным номером, и после рекомендации вы должны будете вернуться к оригиналам.

Существует обходное решение, в котором вы можете использовать класс IDMigrator, но если я правильно помню, в распределенной версии нет поддержки, это только реализация в памяти.

Этот ответ от другого вопроса может помочь вам, как хорошо (link)

1

Я имел успех с длинными и Float типов данных. Строки не являются числами в строго типизированных langugae, таких как Java. В некоторых моделях данных есть функции преобразования для соответствия типам данных Mahout, или вы также можете использовать значения String.toLong() или asLong() для передачи необходимых значений