Найти ближайшее слово к набору слов - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно найти что-то похожее на model.most_similar()
. В то время как most_similar() возвращает массив слов, наиболее похожих на тот, который указан в качестве входных данных, мне нужно найти своего рода "центр" спискаслов.

Есть ли какая-нибудь функция в gensim или каком-либо другом инструменте, который мог бы мне помочь?

Пример:
Учитывая {'chimichanga', 'taco', 'burrito'}, центр может быть mexico или food, в зависимости от корпуса, на котором обучалась модель

1 Ответ

0 голосов
/ 07 июня 2018

Если вы предоставите список слов в качестве аргумента positive для most_similar(), он сообщит слова, наиболее близкие к их среднему значению (что может показаться разумным толкованием слова «центр»).

Например:

sims = model.most_similar(positive=['chimichanga', 'taco', 'burrito'])

(я несколько сомневаюсь, что главный результат sims[0] здесь будет "мексика" или "еда"; скорее всего, это будет другое слово "мексиканская еда"Не обязательно существует «более общее» / гиперное отношение, которое можно найти либо между словами word2vec, либо в определенных направлениях ... но некоторые другие методы встраивания, такие как гиперболические вложения , могут обеспечить это.)

...