Mahout строкаСходство
Я пытаюсь вычислить сходство строк между документами Википедии. У меня есть векторы TF-IDF в форматеKey class: class org.apache.hadoop.io.Text Value Class: class org.apache.mahout.math.VectorWritable
, Я следую за быстрым туром анализа текста отсюда:https://cwiki.apache.org/confluence/display/MAHOUT/Quick+tour+of+text+analysis+using+the+Mahout+command+line
Я создал матрицу Mahout следующим образом:
mahout rowid \
-i wikipedia-vectors/tfidf-vectors/part-r-00000
-o wikipedia-matrix
Я получил количество сгенерированных строк и столбцов:
vectors.RowIdJob: Wrote out matrix with 4587604 rows and 14121544 columns to wikipedia-matrix/matrix
Матрица имеет форматKey class: class org.apache.hadoop.io.IntWritable Value Class: class org.apache.mahout.math.VectorWritable
У меня также естьdocIndex
документ в следующем формате:Key class: class org.apache.hadoop.io.IntWritable Value Class: class org.apache.hadoop.io.Text
Затем, когда я запускаю задание на сходство строк
mahout rowsimilarity
-i wikipedia-matrix/matrix
-o wikipedia-similarity
-r 4587604
--similarityClassname SIMILARITY_COSINE
-m 50
-ess
Я получаю следующую ошибку:
13/08/25 15:18:18 INFO mapred.JobClient: Task Id : attempt_201308161435_0364_m_000001_1, Status : FAILED
java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.mahout.math.VectorWritable
at org.apache.mahout.math.hadoop.similarity.cooccurrence.RowSimilarityJob$VectorNormMapper.map(RowSimilarityJob.java:183)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:648)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:322)
at org.apache.hadoop.mapred.Child$4.run(Child.java:266)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1278)
at org.apache.hadoop.mapred.Child.main(Child.java:260)
Может кто-нибудь, пожалуйста, помогите мне с ошибкой? Я не уверен, откуда этоorg.apache.hadoop.io.Text
когда матрица ввода имеет форматKey class: class org.apache.hadoop.io.IntWritable Value Class: class org.apache.mahout.math.VectorWritable
Большое спасибо.
Бест, Драган