Привет! ребята. Сегодня я очень просто продемонстрирую реализацию 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 и другие короткие руководства по НЛП. Пожалуйста, не стесняйтесь комментировать или связываться со мной.