Повысьте слова, связанные с word2vec, чтобы улучшить результаты ElasticSearch - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь создать поисковую систему, основанную как на ElasticSearch, так и на модели word2vec, «обученной» на корпусе, загруженном в ElasticSearch.

Предположим, что задан следующий запрос: «Являются ли Соединенные Штаты страной?». И предположим, что моя модель Word2Vec обнаружила, что «Соединенные Штаты» подобны «США» с косинусным сходством 0,8 и «Америке» с косинусным сходством 0,7. Теперь я хотел бы, чтобы ElasticSearch выполнял поиск по основному запросу, но также заменял эти «синонимы», но с учетом весов.

Мой текущий подход заключается в выполнении строки запроса и усилении отдельных «синонимов», например,

"query": "Is the ((United States)^1 OR (usa)^0.8 OR (america)^0.7) a country?"

В качестве примечания, я, вероятно, предоставлю (United States) повышение 0.5, так как есть два слова, которые увеличат оценку, если будут найдены вместе, поэтому деление начального повышения на количество слов выглядит правдоподобным подходом. .

Это, однако, означало бы, что мне пришлось бы написать свой собственный фрагмент кода, чтобы идентифицировать эти синонимы и создать эти результирующие запросы. Кроме того, я не уверен, является ли это «лучшим» способом сделать это.

Не могли бы вы высказать свое мнение об этом методе и сообщить мне, что, по вашему мнению, будет более разумным подходом?

...