Векторное представление слов — различия между версиями
Serejke (обсуждение | вклад) (→Skip-grams) |
Serejke (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
'''Статья находится в разработке''' | '''Статья находится в разработке''' | ||
− | '''Векторное представление слов''' - | + | '''Векторное представление слов''' - общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам (и, возможно, фразам) из некоторого словаря векторов из значительно меньшего количества слов в словаре. Для этого используют нейронные сети , методы понижения размерности в применении к матрицам совместных упоминаний слов (word co-occurrence matrices) и явные представления, обучающиеся на контекстах упоминаний слов (explicit representations). |
TODO: | TODO: | ||
Строка 12: | Строка 12: | ||
word2vec with skip-grams learning | word2vec with skip-grams learning | ||
− | + | == One-hot encoding == | |
Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно |V|. Сопоставим слову номер i вектор длины |V|, в котором i-тая координата равна 1, а все остальные - нули. Недостатком подходя является то, что близкие по смыслу слова обладают совершенно разными векторами, из-за чего не получится искать синонимы слов. | Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно |V|. Сопоставим слову номер i вектор длины |V|, в котором i-тая координата равна 1, а все остальные - нули. Недостатком подходя является то, что близкие по смыслу слова обладают совершенно разными векторами, из-за чего не получится искать синонимы слов. | ||
[[Файл:One-hot-encoding.png|300px]] | [[Файл:One-hot-encoding.png|300px]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== word2vec == | == word2vec == | ||
− | word2vec - способ построения сжатого пространства векторов для слов, использующий двухслойную нейронную сеть. | + | word2vec - способ построения сжатого пространства векторов для слов, использующий двухслойную нейронную сеть. Принимает на вход большой текстовый корпус и сопоставляет каждому слову вектор. Сначала он создает словарь, «обучаясь» на входных текстовых данных, а затем вычисляет векторное представление слов. Векторное представление основывается на контекстной близости: слова, встречающиеся в тексте рядом с одинаковыми словами (а следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов-слов. В word2vec существуют две основных модели обучения: skip-grams и CBOW (Continuous Bag of Words). В модели skip-grams по слову предсказываются слова из его контекста, а в модели CBOW по контексту подбирается наиболее вероятное слово. |
− | |||
− | + | Полученные векторы-слова могут быть использованы для вычисления «семантического расстояния» между словами. После обучения векторы отражают различные грамматические и семантические концепции. | |
− | |||
− | |||
+ | W_{king} - W_{man} + W_{woman} = W_{queen} | ||
+ | W_{shirt} - W_{clothing} + W_{furniture} = W_{chair} | ||
== См. также == | == См. также == |
Версия 20:36, 1 марта 2019
Статья находится в разработке
Векторное представление слов - общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам (и, возможно, фразам) из некоторого словаря векторов из значительно меньшего количества слов в словаре. Для этого используют нейронные сети , методы понижения размерности в применении к матрицам совместных упоминаний слов (word co-occurrence matrices) и явные представления, обучающиеся на контекстах упоминаний слов (explicit representations).
TODO: tf-idf cosinus measure bag-of-words (BOW) continuous BOW N-gram skip-gram word2vec with skip-grams learning
One-hot encoding
Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно |V|. Сопоставим слову номер i вектор длины |V|, в котором i-тая координата равна 1, а все остальные - нули. Недостатком подходя является то, что близкие по смыслу слова обладают совершенно разными векторами, из-за чего не получится искать синонимы слов.
word2vec
word2vec - способ построения сжатого пространства векторов для слов, использующий двухслойную нейронную сеть. Принимает на вход большой текстовый корпус и сопоставляет каждому слову вектор. Сначала он создает словарь, «обучаясь» на входных текстовых данных, а затем вычисляет векторное представление слов. Векторное представление основывается на контекстной близости: слова, встречающиеся в тексте рядом с одинаковыми словами (а следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов-слов. В word2vec существуют две основных модели обучения: skip-grams и CBOW (Continuous Bag of Words). В модели skip-grams по слову предсказываются слова из его контекста, а в модели CBOW по контексту подбирается наиболее вероятное слово.
Полученные векторы-слова могут быть использованы для вычисления «семантического расстояния» между словами. После обучения векторы отражают различные грамматические и семантические концепции.
W_{king} - W_{man} + W_{woman} = W_{queen} W_{shirt} - W_{clothing} + W_{furniture} = W_{chair}
См. также
Примечания
Источники информации
- [1] — fastText by Facebook