使用在维基百科上预先训练的Word2Vec模型

时间:2017-07-25 17:51:49

标签: wikipedia gensim word2vec

我需要使用gensim来获取单词的向量表示,并且我认为最好使用的是在英语维基百科语料库上预训练的word2vec模块。有谁知道在哪里下载它,如何安装它,以及如何使用gensim来创建向量?

2 个答案:

答案 0 :(得分:8)

您可以查看WebVectors以查找在各种语料库中训练过的Word2Vec模型。模型附带自述文件,涵盖培训细节。 不过,你必须要小心使用这些模型。我不确定所有这些,但至少在维基百科的情况下,该模型不是一个二进制文件,您可以使用例如直接加载gensim的功能,但是txt版本,即带有单词和相应向量的文件。但请记住,单词是通过词性(POS)标签附加的,因此,例如,如果您想使用模型找出单词vacation的相似性,那么您可以如果您按原样键入假期,则会获得KeyError,因为模型会将此单词存储为vacation_NOUN。 关于如何使用wiki模型的示例片段(如果它们的格式相同,可能还有其他模型),输出在下面

import gensim.models

model = "./WebVectors/3/enwiki_5_ner.txt"

word_vectors = gensim.models.KeyedVectors.load_word2vec_format(model, binary=False)
print(word_vectors.most_similar("vacation_NOUN"))
print(word_vectors.most_similar(positive=['woman_NOUN', 'king_NOUN'], negative=['man_NOUN']))

和输出

▶ python3 wiki_model.py
[('vacation_VERB', 0.6829521656036377), ('honeymoon_NOUN', 0.6811978816986084), ('holiday_NOUN', 0.6588436365127563), ('vacationer_NOUN', 0.6212040781974792), ('resort_NOUN', 0.5720850825309753), ('trip_NOUN', 0.5585346817970276), ('holiday_VERB', 0.5482848882675171), ('week-end_NOUN', 0.5174300670623779), ('newlywed_NOUN', 0.5146450996398926), ('honeymoon_VERB', 0.5135983228683472)]
[('monarch_NOUN', 0.6679952144622803), ('ruler_NOUN', 0.6257176995277405), ('regnant_NOUN', 0.6217397451400757), ('royal_ADJ', 0.6212111115455627), ('princess_NOUN', 0.6133661866188049), ('queen_NOUN', 0.6015778183937073), ('kingship_NOUN', 0.5986001491546631), ('prince_NOUN', 0.5900266170501709), ('royal_NOUN', 0.5886058807373047), ('throne_NOUN', 0.5855424404144287)]

<强>更新 以下是二进制模型的一些有用链接:

预训练的单词嵌入模型:

Fasttext models

Google Word2Vec

GloVe:用于Word表示的全局向量

  • glove.6B.zip:Wikipedia 2014 + Gigaword 5(6B令牌,400K词汇,无章,50d,100d,200d,&amp; 300d载体,822MB下载)。这是an example的实际操作。
  • glove.840B.300d.zip:常见抓取(840B令牌,2.2M词汇,套装,300d向量,2.03 GB下载)

WebVectors

  • 在各种语料库上训练的模型,通过词性(POS)标签进行增强

答案 1 :(得分:1)

@imanzabet提供了与预先训练过的矢量有用的链接,但是如果你想使用genism训练模型而不是你需要做两件事:

  1. 获取维基百科数据,您可以访问here。看起来英语维基百科的最新快照是在20日,可以找到here。我相信其他英语“wiki”,例如quotes是单独捕获的,因此如果您想要包含它们,则还需要下载它们。

  2. 加载数据并使用它来生成模型。这是一个相当广泛的问题,所以我只会将您链接到优秀的genism documentationword2vec tutorial

  3. 最后,我会指出似乎有一个blog post正好描述了你的用例。

相关问题