Семантические сети: как представить значения слов в виде графа



Команда компьютерных лингвистов из школы лингвистики НИУ ВШЭ, университета Тренто и университета Осло под руководством Андрея Кутузова представила на конференции AIST библиотеку vec2graph для Python (github). Vec2graph умеет визуализировать семантическую близость слов в виде сети. Информацию о близости слов vec2graph получает из векторной семантической модели.



«Системный Блокъ» уже рассказывал о том, что в основе дистрибутивной семантики — простая идея: близкие по значению слова будут встречаться в похожих контекстах. Чтобы передать знание о контекстной близости слов компьютеру, ученые и инженеры обучают векторные семантические модели — например, с помощью word2vec.



Но как отображать семантические близости из векторной модели так, чтобы они снова стали понятны человеку? Самый простой вариант — выдавать для любого слова столбик ближайших к нему «семантических ассоциатов».



Можно попытаться сжать многомерное векторное пространство модели обратно в двумерное. Алгоритмов такого снижения размерности (PCA, MDS, t-SNE) множество.



Третья альтернатива — использовать сети (они же графы). Для каждого слова можно строить сеть из его семантических ассоциатов. При этом сам показатель близости отображать, например, через длину линии: чем короче связь — тем ближе слово в векторной модели. Именно такие визуализации делает vec2graph.



https://sysblok.ru/nlp/semanticheskie-seti-kak-predstavit-znachenija-slov-v-vide-grafa/