Machine Learning for Artists Advent Calendar 2016 - Qiita
こちらのAdvent Calendarの1日目になります。
DMM APIを用いて取得したAVタイトルデータを元にword2vecを使って、「ちんちん - 男 + 女」の結果を見てみましょう。
code
コードはこちらに置いておきました。データセットは各自用意しよう! https://github.com/naoyashiga/dmm-word2vec
word2vecの環境構築
こちらを用いました。anaconda3を使うとすぐに構築できました👍
danielfrg/word2vec: Python interface to Google word2vec
「ちんちん」に似ている単語は何?
ベクトルのコサイン類似度を計算して、単語同士の類似度を計算します。
indexes, metrics = model.cosine('ちんちん') model.generate_response(indexes, metrics)
rec.array([('男子', 0.9861545179373172), ('字', 0.9848851283668705), ('キツ', 0.9841240400958484), ('急', 0.9825421829353408), ('谷間', 0.9825396943608381), ('いまだ', 0.9823301839097356), ('奪う', 0.9819839971161488), ('実家', 0.9816670202154381), ('すぐ', 0.9810211009078225), ('相談', 0.9809858803299966)], dtype=[('word', '<U78'), ('metric', '<f8')])
「男子」という結果に。男子以外は微妙ですね。。。
「ちんちん - 男 + 女」
[('捜査', 0.29095711064011665), ('囚われ', 0.2903398678674696), ('官', 0.28971248366345176), ('新任', 0.2873962495181514), ('芸人', 0.28661149679360853), ('美', 0.2852711412876362), ('熟', 0.28287569960461306), ('ハルナ', 0.28268530237630035), ('教師', 0.2820045767430891), ('タイトスカート', 0.28066625522870675)]
あまり結果に納得感がないです。。企画モノのタイトルから「捜査」が拾われたのでしょうか。
「チン - 男 + 女」
ちんちんではなく、短く「チン」に変えてみます。
[('尻', 0.22085438683701394), ('教師', 0.21264258242889073), ('熟', 0.2114356137079717), ('家庭', 0.20757195074212614), ('デカ', 0.20729663313883032), ('イケメン', 0.2058938267426101), ('疼く', 0.20170178655920107), ('欲求', 0.20150636945130818), ('不満', 0.20078146871654948), ('たち', 0.20046903571228172)]
「尻」という結果にw それっぽい結果になりました。
課題
データ量が少ない
今回は1万タイトルを用いました。もっとデータを増やしたほうが結果は良さそうです。
分かち書きがうまくいっていない
例えばデカチンという単語が「デカ チン」であったり「デ カチン」となったりしていました。俗語が多いと、仕方ないのかもしれません。
以上です。