Есть ли способ получить отношения от 'GloVe' word2vec? - PullRequest
0 голосов
/ 13 ноября 2018

Я использую Glove, Gensim-word2vec , модуль, и я могу использовать его, чтобы вернуть оценку сходства между сущностями, такими как 'man' и 'woman', и будет возвращаться 0.89034.Но есть ли способ вернуть семантические отношения между двумя сущностями?Например, учитывая слово 'people' и 'location', результатом должно быть отношение 'lives_in'?

. Я могу сделать что-то вроде:

print(model.most_similar(positive=['king', 'woman'], negative=['man']))

Вывод:

[('queen', 0.775162398815155), ('prince', 0.6123066544532776), ('princess', 0.6016970872879028), ('kings', 0.5996100902557373), ('queens', 0.565579891204834), ('royal', 0.5646308660507202), ('throne', 0.5580971240997314), ('Queen', 0.5569202899932861), ('monarch', 0.5499411821365356), ('empress', 0.5295248627662659)]

Желаемый выход:

[(is_a, 0.3223), (same_as, 0349230), (people, 0302432) ...]

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Не совсем, поскольку переносчики слов не знают таких отношений по имени.

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

Как бы ни были полезны эти направления, даже такие острые отношения, как "part_of" (meronymy) или "more_specific_example_of" (hyponymy), могут не иметь сильных, согласованных направлений в векторном пространстве.

А для вашего примера «мужчина» X «женщина» и предположение, что X = «Similar_to» будет подходящим ответом, который кажется мне запутанным.Обычно «мужчина» и «женщина» противопоставляются некоторым гендерным различиям / направлениям.что они similar, немного интереснее сказать, что слово является similar_to его 10 ближайшими соседями, или 100 ближайшими соседями, или 10000 ближайшими соседями (по сравнению со всеми другими словами в модели).Вы можете легко прочитать многие similar_to взаимосвязи из модели, но пары, которые явно выделяют аспекты человеческого восприятия, могут быть более трудными для маркировки / идентификации.(Например, «горячий» и «холодный» довольно похожи, поскольку они используются в сходных контекстах, но также и семантически антонимами, в том смысле, что они специально используются для выделения исключительных и противоположных температурных уровней по сравнению с некоторыми кадрамиссылка.)

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

0 голосов
/ 13 ноября 2018

Во-первых, вы можете выбрать идеальный пример для людей и местоположения.

ex-people Trumph и location whitehouse.

Затем для новых людей George и location California,

Вы можете сделать следующеематематика для вычисления действительного _in балла,

Косинус аналогично между (A-B + C) и D

Реализация:

from scipy.spatial.distance import cosine
cosine(model.wv['Trump']-model.wv['whitehouse']+model.wv['George'],model.wv['California'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...