Привет! ребята. Сегодня я очень просто продемонстрирую реализацию Word2vec.

Краткое описание Word2vec

В настоящее время это популярный метод обработки естественного языка. Для обучения модели в нем используется метод глубокого обучения без учителя.
Основная идея Word2vec - представлять слова в векторах. Эти векторы можно использовать для ответа на запросы, например R ome на Ital y, на P aris на _ и найти нечетное одно из 3 или более слов и многое другое.

Примечание.

Не вдаваясь в глубокое обучение, которое составляет основу модели word2vec. Для обучения модели требуется много-много данных. Следовательно, модель лучше всего работает с корпусом новостей Google или корпусом Википедии, поскольку это очень большой корпус и поэтому его нельзя обучить на ПК с 4 ГБ или 8 ГБ ОЗУ.
Итак, я использую nltk brown corpus для обучения. В нем около 1,2 миллиона слов, и результаты хорошие.

Приступим к кодированию.

Импортировать gensim и nltk:

import gensim
from nltk.corpus import brown

Обучите модель:

sentences = brown.sents()
model = gensim.models.Word2Vec(sentences, min_count=1)
model.save(‘brown_model’)
print “Brown corpus model saved.”

Загрузите и протестируйте модель:

model = gensim.models.Word2Vec.load(‘brown_model’)
#words most similar to mother
print model.most_similar(‘mother’)
#find the odd one out
print model.doesnt_match(“breakfast cereal dinner lunch”.split())
print model.doesnt_match(“cat dog table”.split())
#vector representation of word human
print model[‘human’]

Надеюсь, вам понравилось. Следите за обновлениями. Очень скоро я напишу Doc2vec и другие короткие руководства по НЛП. Пожалуйста, не стесняйтесь комментировать или связываться со мной.