Когда я использую атрибут string value в данных обучения для itemBasedRecommender в Mahout, я получаю NumberFormatException, которое создается во время создания FileDataModel из данных в файле. Если значение атрибута строки равно «1.0», которое в основном представляет собой число, представленное в виде строки, то оно не выбрасывает исключение NumberFormatException. Но если значение атрибута - «Вашингтон», то генерируется исключение NumberFormatException. Есть ли какое-либо решение, по которому я могу передавать значения атрибутов строки, такие как «Вашингтон», как itemID/userID в данных обучения для Рекомендаторов в Mahout? Я использую Java 1.6SE, Mahout 0.7 и Hadoop 1.2.NumberFormatException в Mahout при построении модели данных
ответ
Рекомендованные рекомендации Mahout на самом деле не работают со строками, как правило, вместо этого вы должны использовать длинные номера. Прежде чем передавать данные рекомендателю, вам нужно будет сопоставить каждого пользователя и каждый элемент с уникальным номером, и после рекомендации вы должны будете вернуться к оригиналам.
Существует обходное решение, в котором вы можете использовать класс IDMigrator
, но если я правильно помню, в распределенной версии нет поддержки, это только реализация в памяти.
Этот ответ от другого вопроса может помочь вам, как хорошо (link)
Я имел успех с длинными и Float типов данных. Строки не являются числами в строго типизированных langugae, таких как Java. В некоторых моделях данных есть функции преобразования для соответствия типам данных Mahout, или вы также можете использовать значения String.toLong() или asLong() для передачи необходимых значений