u++の備忘録

日本語版text8コーパスから単語の分散表現を得る

はじめに

上のツイートが思いのほか反響が良かったので、簡単ではありますが処理方法をまとめておきます。

手順

  1. コーパスのダウンロード
  2. gensimでの読み込み

コーパスのダウンロード

コーパスGithubのREADME.mdからダウンロードできます。zipを解凍し、適当な作業フォルダ内に配置しましょう。

gensimでの読み込み

あとはGithubのREADME.mdの記載通りに読み込むだけです。sizeは単語ベクトルの大きさを意味します。

from gensim.models import word2vec
 
sentences = word2vec.Text8Corpus('ja.text8')
model = word2vec.Word2Vec(sentences, size=200)
model['金融']
array([ 6.60341680e-01, -1.64953339e+00,  3.32918353e-02, -9.80880857e-02,
        1.20754802e+00,  1.94470084e+00,  1.62470174e+00, -9.61422026e-01,
(中略)
        2.30138436e-01, -2.17804956e+00,  6.24406040e-01, -1.56991804e+00],
      dtype=float32)

Kaggle Kernel

使い方のイメージのため、Kaggle Kernelも公開しておきます。

www.kaggle.com

f:id:upura:20190619122610p:plain
コーパスの再配布を防ぐため、Datasetはprivateに設定してあります。ご自身で使う際には、ダウンロードしたコーパスを指定してください。

おわりに

本記事では、日本語版text8コーパスから単語の分散表現を得る方法を紹介しました。
学習済コーパスを公開してくださっているHironsanさんに御礼申し上げます。