Есть ли хорошие алгоритмы для смыслового сравнения текстов?

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

Задача по сути такого рода: есть исходный документ doc0, на вход поступает множество других документов doc_n (тематика текстов разношерстная) и нужно с какой-то степенью вероятности сказать что, к примеру, в doc_10 идет речь о том же что и в doc_0 (попадаются очень хорошо переписанные тексты об одном и том же). Важно именно такое сравнение, я пробовал LSI в целом штука забавная, но как по мне она больше подходит для группировки документов нежели их "осмысленное" сравнение. Шилинги, n-граммы и т.п. весьма неоднозначны. Подскажите, пожалуйста, существует ли вообще подобные решения и какие? И что можно почитать хорошо по данной тематике из книг?
  • Вопрос задан
  • 4076 просмотров
Пригласить эксперта
Ответы на вопрос 4
@xdgadd
ML/Python/Cpp
Задача называется Semantic Similiarity. Я с этим направлением не работал вообще, но интуитивно могу предположить LSTM/CNN и разные вариации на тему Siamese/Triplet networks.
Ответ написан
DanilBaibak
@DanilBaibak
Machine Learning engineer
Судя по всему Вам нужен doc2vec. После того как обучите модель, можно будет использовать метод n_similarity. Идея в том, чтоб представить тексты ввиде векторов, после чего можно будет посчитать их cosine similarity.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
см. gensim
Ответ написан
Комментировать
@gena09
Doc2Vec пригоден для большого количества документов (с 5-10 тысяч), хотя многое зависит от их длины. Можно увеличивать размерность векторов, количество интераций, уменьшить окно, но это для малого числа документов слабо помогает. То есть для небольшого количества данных лучше LSI.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы