Как найти косинусное сходство между двумя текстовыми документами с использованием Java?
Мне нужно сравнить большое количество твитов, содержащих определенный хэштег, чтобы отобразить твит с самым высоким содержанием. Для того же, мне нужно найти парное косинусное сходство между каждым из них и отобразить твит с наибольшим парным косинусным сходством в качестве результата. Я много читал о моделях векторного пространства, векторах tf-idf, word2vec / doc2vec и т. Д., Но не смог ничего понять полностью. Мне нужно реализовать то же самое с помощью Java. Есть ли альтернатива scfit-learn TfidfVectorizer или NLTK?
1 ответ
Вы можете использовать Apache Mahout для векторизации всех текстовых документов, находящихся в папке.
Первым шагом является создание файлов последовательности, а затем создание векторов из этих файлов последовательности.
Эта страница описывает, как это сделать. Затем вы можете использовать класс RowSimilityJob для вычисления косинусных сходств.