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

Using a Word2Vec model pre-trained on wikipedia

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

@imanzabet 提供了有用的 links 预训练向量,但是如果你想使用 genism 自己训练模型,那么你需要做两件事:

  1. 获取您可以访问的维基百科数据 here. Looks like the most recent snapshot of English Wikipedia was on the 20th, and it can be found here. I believe the other English-language "wikis" e.g. quotes 是单独获取的,因此如果您想要包含它们,您也需要下载这些数据。

  2. 加载数据并使用它生成模型。这是一个相当宽泛的问题,所以我将 link 向优秀的 genism documentation and word2vec tutorial 提问。

最后,我要指出的是,似乎有一个 blog post 准确描述了您的用例。

您可以检查 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:表示词的全局向量

  • glove.6B.zip: Wikipedia 2014 + Gigaword 5 (6B tokens, 400K vocab, uncased, 50d, 100d, 200d, & 300d vectors, 822 MB download). Here's 正在行动。
  • glove.840B.300d.zip: Common Crawl (840B tokens, 2.2M vocab, cased, 300d vectors, 2.03 GB download)

WebVectors

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