У меня есть проект схожести документа с документом, который я работаю, и я застрял в какой-то части. Ситуация выглядит следующим образом (у меня есть термин документ таблицы индекса хранится в файле CSVПерекрестные заголовки продуктов и чтения в hadoop
"", t1, t2, t3, t4, ....
doc1, f11, f12, f13, f14, ....
doc2, f21, f22, f23, f24, ....
doc3, f31, f32, F33, F34, ....
.
.
.
где f12 означает частоту term2 (t2) в документа1 (doc1)
С другой стороны, у меня есть файл запрос содержит запросы, которые нужны искать их ближайшие или аналогичные документы
"", t1, t3, T122, T34, ....
q1, f11, f12, f13, f14, ....
q2, f21, f22, f23, f24 , ....
q3, f31, f32, f33, f34, ....
.
.
. , но здесь термины здесь могут содержать разные термины, поэтому мне нужно найти кросс-произведение этих двух (индекс терминов и запросов), чтобы найти расстояния между запросом и существующим документом
Проблема состоит из двух частей : first, как читать заголовки каждого из этих файлов csv для хранения их в каком-либо терминаторе, учитывая, что файл будет разделен на разные машины.
второй, как сделать декартово произведение на этих двух файлов, чтобы найти similartiy (создать новый документ, который может иметь все возможные условия (размеры) для того, чтобы найти сходство)
Я планирую написать некоторый алгоритм K-ближайшего соседа, чтобы найти сходство Какой инструмент или инструменты я должен использовать, Pig, Hive, Mahout.
Исходный код также доступен здесь: https://github.com/adamjshook/mapreducepatterns/tree/master/MRDP/src/main/java/mrdp/ch5 – vefthym