お試し


      
<li><a href="#%E4%BE%8B%E3%81%88%E7%94%9F%E6%88%90%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E6%AE%B5%E9%9A%8E">例え生成プロジェクト チュートリアル段階</a>
<ul>
<li><a href="#gensim-%E3%81%AEinstall">gensim のinstall</a></li>
<li><a href="#%E5%AD%A6%E7%BF%92%E6%B8%88%E3%81%BF%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">学習済みモデルのダウンロード</a></li>
<li><a href="#%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F">やってみた</a>
<ul>
<li><a href="#%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF">モデルの読み込み</a></li>
<li><a href="#%E6%8C%87%E5%8E%9F%E8%8E%89%E4%B9%83-%E6%82%AA">指原莉乃　+ 悪　＝　？</a></li>
<li><a href="#%E6%8C%87%E5%8E%9F%E8%8E%89%E4%B9%83--akb48">指原莉乃　- AKB48　＝　？</a></li>
</ul>
</li>
</ul>
</li>
</ul>

<p>以下のサイトに従ってチュートリアルを実施した</p>
<p><a href="http://cedro3.com/ai/word2vec-gensim/">gensim を使ってみる</a></p>
<br />
<h2 id="gensim-のinstall">gensim のinstall</h2>
<pre><code>pip install gensim
</code></pre>
<blockquote>
<p>Successfully installed gensim-4.1.2 numpy-1.22.2 scipy-1.8.0 smart-open-5.2.1</p>
</blockquote>
<p>上記のように4つのファイルが（入っていなければ）インストールされる</p>
<br />
<h2 id="学習済みモデルのダウンロード">学習済みモデルのダウンロード</h2>
<p>以下２種類の学習済みモデルの実装を試みた</p>
<ul>
<li>WikiEntVec : 日本語の固有表現の情報が多い</li>
<li>追加予定</li>
</ul>
<blockquote>
<p>今回使うのは東北大学 乾・岡崎研究室で作られたモデルです。これは、日本語 Wikipedia の本文全文を元に学習したもので、ベクトルは200次元です。</p>
</blockquote>
<p><strong>特徴はwikipediaの性質上,日本語の固有表現に関する情報が多いこと</strong></p>
<br />
<blockquote>
<p>この<a href="http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/">リンク</a>で研究室のホームページに行き、
20170201.tar.bz2 (2017年2月1日版, 1.3GB, 解凍後 2.6GB)をダウンロードして下さい。</p>
</blockquote>
<p>今回は<a href="https://github.com/singletongue/WikiEntVec">githubのページ</a> からリリースページへジャンプし
一番最新かつ容量の多い、jawiki.all_vectors.300d.txt.bz2 (2019年5月20日版, 1.74GB, 解凍後 5.0GB)をダウンロードした。</p>
<p>と思ったが、最新のくんれん済みデータはtxtファイルしか入っていない。参考元を見ても、必要なのはbinファイルなので，おとなしく参考元と同じ2017年のモデルを使用することとする。</p>
<br />
<p>ダウンロードファイルの展開(linux環境です。windowsはソフト入れな)</p>
<pre><code>cd 10_trainedVector/WikiEntVec/

# 拡張子が.bz2だけの場合
bzip2 -d jawiki.all_vectors.300d.txt.bz2

# 拡張子が.tar.bz2の場合
tar xvzf 20170201.tar.bz2 
</code></pre>
<p>解凍待ちの完全に余談だが、tarのオプションはそれぞれ以下の意味らしい (<a href="https://qiita.com/ironsand/items/b53301eb07e0f6199126">参考</a>)</p>
<ul>
<li>
<p>x : eXtract(展開)</p>
</li>
<li>
<p>v : verbose(言葉の多い、展開内容を表示)</p>
</li>
<li>
<p>z : gzip対応</p>
</li>
<li>
<p>f : file から展開(デフォルトはテープデバイスになってるので。)</p>
<p>ls entity_vector</p>
</li>
</ul>
<p>entity_vector/entity_vector.model.binがあることを確認。
解凍前の圧縮ファイルは消してよし</p>
<h2 id="やってみた">やってみた</h2>
<h3 id="モデルの読み込み">モデルの読み込み</h3>
<pre><code>from gensim.models import KeyedVectors
import os

# モデルのパス
project_root = '..'
model_dir = os.path.join(project_root, '10_trainedVector/WikiEntVec/entity_vector')
model_txt = os.path.join(model_dir, 'entity_vector.model.bin')

model = KeyedVectors.load_word2vec_format(model_txt, binary=True)
</code></pre>
<h3 id="指原莉乃-悪">指原莉乃　+ 悪　＝　？</h3>
<pre><code>results = model.most_similar(positive=[u'[悪]',u'[指原莉乃]'])
for result in results:
    print(result)
</code></pre>
<ol>
<li>('[恋]', 0.6308125257492065)</li>
<li>('[小嶋陽菜]', 0.6083012819290161)</li>
<li>('[両性具有]', 0.6051624417304993)</li>
<li>('[善]', 0.6046913266181946)</li>
<li>('[柏木由紀]', 0.5923081636428833)</li>
<li>('[つるの剛士]', 0.5916614532470703)</li>
<li>('悪', 0.589141845703125)</li>
<li>('[秋元才加]', 0.5883554220199585)</li>
<li>('[大島優子]', 0.586757242679596)</li>
<li>('[知念侑李]', 0.5830826163291931)</li>
</ol>
<h3 id="指原莉乃--akb48">指原莉乃　- AKB48　＝　？</h3>
<pre><code>results = model.most_similar(positive=[u'[指原莉乃]'], negative=['[AKB48]'])
for result in results:
    print(result)
</code></pre>
<ol>
<li>('[川平慈英]', 0.44735950231552124)</li>
<li>('[ハーヴェイ・カイテル]', 0.44733762741088867)</li>
<li>('[ウィル・アーネット]', 0.43451210856437683)</li>
<li>('[竹内靖夫]', 0.432728111743927)</li>
<li>('[矢野誠_(ミュージシャン)]', 0.42878034710884094)</li>
<li>('[置鮎龍太郎]', 0.4265846312046051)</li>
<li>('[渡辺徹_(俳優)]', 0.42566490173339844)</li>
<li>('[クリス・タッカー]', 0.42323005199432373)</li>
</ol>
</div>
        </div>
    </body>
    </html>