web-dev-qa-db-ja.com

ウィキペディアで事前トレーニングされたWord2Vecモデルの使用

単語のベクトル表現を取得するにはgensimを使用する必要があります。使用するのに最適なのは、英語版ウィキペディアのコーパスで事前トレーニングされたWord2vecモジュールだと思います。ダウンロードする場所、インストール方法、gensimを使用してベクターを作成する方法を知っている人はいますか?

11
Boris

@imanzabetは事前トレーニング済みのベクターとの便利なリンクを提供しましたが、genismを使用して自分でモデルをトレーニングしたい場合は、次の2つのことを行う必要があります。

  1. ここ にアクセスできるWikipediaデータを取得します。英語版ウィキペディアの最新のスナップショットは20日だったようで、これは here で見つかります。私は他の英語の「ウィキ」を信じています。 quotes は個別にキャプチャされるため、それらを含める場合は、それらもダウンロードする必要があります。

  2. データを読み込み、それを使用してモデルを生成します。これはかなり広い質問なので、すばらしい genism documentationWord2vec tutorial にリンクします。

最後に、ユースケースを正確に説明する ブログ投稿 があるようです。

2
Suriname0

WebVectors をチェックして、さまざまなコーパスでトレーニングされたWord2Vecモデルを見つけることができます。モデルには、トレーニングの詳細をカバーするreadmeが付属しています。ただし、これらのモデルの使用には少し注意が必要です。それらすべてについてはわかりませんが、少なくともWikipediaの場合、モデルはバイナリファイルではないため、次のように直接ロードできます。 gensimの機能ですが、txtバージョン、つまり単語と対応するベクターを含むファイルです。ただし、単語には品詞(POS)タグが付加されているため、たとえば、モデルを使用してWord vacationの類似点を見つけたい場合は、モデルがこのWordをvacation_NOUNとして保存しているため、休暇をそのまま入力するとKeyErrorを取得します。 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)]

[〜#〜] update [〜#〜]以下は、バイナリモデルへの便利なリンクです。

事前トレーニングされたWord埋め込みモデル:

Fasttextモデル

  • crawl-300d-2M.vec.Zip :Common Crawl(600Bトークン)でトレーニングされた200万ワードのベクトル。
  • wiki-news-300d-1M.vec.Zip :Wikipedia 2017、UMBC Webbaseコーパス、およびstatmt.orgニュースデータセット(16Bトークン)でトレーニングされた100万のWordベクトル。
  • wiki-news-300d-1M-subword.vec.Zip :Wikipedia 2017のサブワード情報、UMBC Webbaseコーパス、statmt.orgニュースデータセット(16Bトークン)でトレーニングされた100万ワードのベクター。
  • Wiki Wordベクター 、dim = 300: wiki.en.Zip :ビン+テキストモデル

Google Word2Vec

GloVe :単語表現のグローバルベクトル

  • glove.6B.Zip :Wikipedia 2014 + Gigaword 5(6Bトークン、400K語彙、ケースなし、50d、100d、200d、および300dベクトル、822 MBダウンロード)。これが の動作例です。
  • glove.840B.300d.Zip :一般的なクロール(840Bトークン、2.2M語彙、ケース入り、300dベクトル、2.03 GBダウンロード)

WebVectors

  • さまざまなコーパスでトレーニングされたモデルで、品詞(POS)タグが追加されています。
14
formi23