初めに
今回はfasttextでオタク向けのモデルを作ります。
どのコーパスを使ったか
アニヲタWikiのほぼ全記事(841MB)を学習させました。
文字数は空白含み、445284415文字。
一応、サーバーには負担をかけないようにしたつもりです。
分かち書きにはmecab-ipadic-NEologdを使いました。
binとvec両方含んである物もあるのでお好みで使い分けてください。
ダウンロード
ダウンロード
注意:両方含んだ方のzipファイルサイズは大きいです。
ライセンスはMIT Licenseです。
使い方
##gensimの場合
import gensim
model = gensim.models.KeyedVectors.load_word2vec_format('model.vec', binary=False)
検証
上手くいった例
>>> model.most_similar(positive=['雪ノ下雪乃'])
[('由比ヶ浜結衣', 0.8398512005805969), ('比企谷八幡', 0.8388717770576477), ('井上心葉', 0.8085094690322876), ('やはり俺の青春ラブコメはまちがっている。', 0.7935140132904053), ('嘘つきみーくんと壊れたまーちゃん', 0.7915672659873962), ('天野遠子', 0.765424907207489), ('木下秀吉', 0.7628801465034485), ('瀬川泉', 0.7601190805435181), ('小牧愛佳', 0.7600274682044983), ('小早川ゆたか', 0.759345293045044)]
#同じシリーズのキャラクターが出ている
>>> model.most_similar(positive=['王', '女'], negative=['男'])
[('女王', 0.5404699444770813), ('バルホルス', 0.5356605052947998), ('マギ・ヴァル', 0.5220056772232056), ('獅子心王', 0.5187593698501587), ('ゼテギネア', 0.5122318863868713), ('ファレナ', 0.5120536088943481), ('レファル・エディア', 0.5085812211036682), ('モルブディア', 0.507931113243103), ('ルキウス', 0.5058585405349731), ('ネサラ', 0.505682647228241)]
#こちらも一応、1位は上手くいっている
>>> model.most_similar(positive=['ロンドン', '日本'], negative=['イギリス'])
[('東京', 0.551081120967865), ('日本橋', 0.5485166907310486), ('日本勢', 0.5443987846374512), ('日本大', 0.543359100818634), ('日本三景', 0.5350313782691956), ('東京都心', 0.5298252105712891), ('日本犬', 0.529288649559021), ('日本進出', 0.5274679660797119), ('ロンドン大学', 0.5271546840667725), ('布袋劇', 0.5242681503295898)]
#上手くいっている
あまり上手くいかなかった例
>>> model.most_similar(positive=['パリ', '日本'], negative=['フランス'])
[('パリ郊外', 0.4626120924949646), ('日本の首都', 0.4594534635543823), ('日本の人', 0.4535835385322571), ('日本の刑務所', 0.4501851201057434), ('日本向け', 0.44550591707229614), ('日本国', 0.4448232054710388), ('富山県', 0.44453561305999756), ('日本の昔話', 0.44140082597732544), ('中国本土', 0.43912768363952637), ('パリパリ', 0.43846452236175537)]
>>> model.most_similar(positive=['うれしい', '泣く'], negative=['笑う'])
[('うれしいこと', 0.5961353182792664), ('嬉しい', 0.5788377523422241), ('うれしく', 0.5299932360649109), ('うれし', 0.5080203413963318), ('うれしゅう', 0.5042930841445923), ('うれしかっ', 0.5040944814682007), ('恋しい', 0.474494606256485), ('さみしく', 0.469252347946167), ('さみしかっ', 0.4595452547073364), ('ありがたい', 0.4571915864944458)]
考察
以上、検証結果でした。
僕は余りアニメ関連は詳しくないので、もし「このアニメで上手くいった」とか「このアニメだと駄目だった」とか教えていただけると嬉しいです。
今回は前処理等をほとんどしてないのとデータの形式が特殊なためWikipediaを使ったデータに比べると劣っていると言わざるを得ません。