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

问题描述 投票:0回答:2

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

wikipedia gensim word2vec
2个回答
21
投票

您可以检查WebVectors来查找在各种语料库上训练的Word2Vec模型。模型附带包含培训细节的自述文件。 不过,使用这些模型时您必须小心一点。我不确定所有这些,但至少在维基百科的情况下,该模型不是一个可以直接加载的二进制文件,例如

gensim
的功能,但是一个txt版本,即包含单词和相应向量的文件。但请记住,这些单词会附加其词性 (POS) 标签,因此,例如,如果您想使用该模型来找出单词
vacation
的相似性,您将得到a
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 模型:

Google Word2Vec

GloVe:用于单词表示的全局向量

  • glove.6B.zip:Wikipedia 2014 + Gigaword 5(6B 令牌、400K 词汇、无大小写、50d、100d、200d 和 300d 矢量,822 MB 下载)。这是正在运行的示例
  • glove.840B.300d.zip:Common Crawl(840B 令牌、220 万词汇、大小写、300d 矢量、2.03 GB 下载)

WebVectors

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

2
投票

@imanzabet 提供了与预训练向量的有用链接,但如果您想使用 genism 自己训练模型,则需要做两件事:

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

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.