NumberFormatException в Mahout при построении модели данных

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


person AB1989    schedule 11.07.2013    source источник


Ответы (2)


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

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

Этот ответ из другого вопроса также может помочь вам (ссылка)

person Julian Ortega    schedule 11.07.2013

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

person paulscott56    schedule 30.07.2013