МЛ

МЛ


Первый этап

Cобрать тестовый датасет и выбрать метрику для оценки качества моделей.

построить бейзлайн на основе самого простого в реализации подхода и оценить его качество. В дальнейшем экспериментируя и пробуя новые подходы оценивать их на этом датасете и исходя из этого развивать модель.


Идеи по улучшению модели:

1) Взять базу синонимов/тезаурус (современную), из этой базы взять ключевые слова, у которых будут какие-то веса по схожести (чем больше синоним ближе по значению, чем больше вес). Такие есть даже на питоне. И делать сопоставление на основе этого тезауруса тоже (прогонять через тезаурус если нет совпадающих тэгов, как второй уровень матчинга).

2) Более сложный, но более точный вариант, есть библиотека спайси, и в ней есть инструментарий, который определяет ворд симиларити - на основе инструментов, которые анализируют большие тексты с использованием многомерного вектора. С этим вектором можно проводить математические операции, в т.ч. и поиск расстояния (чем меньше векторное расстояние получается между какими-то словами, тем ближе они по смыслу). 

Более продвинуто, можно брать группу тэгов: симиларити не одного конкретного тэга, а нескольких.

3) Векторное представление параграфов: каждый параграф можно было бы прогнать через нейронную сеть и получить Embedding (вектор дробных цифр). И в этих цифрах хранился общий смысл, поскольку нс училась бы как энкодер упаковывать смысловую информацию в некоторый массив чисел, там бы хранилась нужная нам информация. И потом с помощью векторов можно было бы проводить информацию над ними: например матчинг - на сколько эти вектора совпадают друг с другом, что дало бы много возможностей в плане векторных операций. И в этих операциях оно бы оперировало смыслом, не какими-то конкретными словами. И мы могли бы избежать ситуации, когда происходит сопоставление между параграфами одинаковыми тегами, но разным смыслом. 

Сделать пороговые значения: 1 и 0 - matched or not by vectors. И уйти от тегов - все сопоставление делается “под капотом”.

Тут уже задействуются глубокие нейронные сети.

Плюсы - работает быстро
Минусы - возможна потеря информации в длинных параграфах

4) Анализировать параграфы с помощью нейросетей на этапе compilation. Хранить просто параграфы без тегов и тд, а когда идет компилейшен, нейросеть мэтчит параграфы между собой, анализируя текст.

Советы

Не стоит опираться на тэги как тэги, даже со словарями. Лучше использовать векторные представления и делать сопоставление/ранжирование по этим векторным представлениям.


Посмотреть статьи/исследования о подобной тематикой.


Подумать над возможностью объединять параграфы по смыслу, если они семантически относятся к одному пункту сопостовляемого документа


Подумать насчет сбора данных для обучения моделей.








Report Page