ふと思ったんです
ちくわぶってあるじゃないですか。
あいつって文字通り「ちくわ」と「ふ」を足したような名前してますけど、
word2vecとかfastTextで「ちくわ」と「ふ」を足したら何になるのかなと思ったわけです。
ということで今回は__fastTextのハンズオンを兼ねてちくわぶで色々遊んでみようと思います__。
※筆者はちゃんと「ちくわ+ふ」が「ちくわぶ」ではないことは理解したうえで実験に臨んでいます。予めご了承ください。
実装
データ用意
今回はこちらの学習済fastTextモデルを利用しました。
本当はword2vecのフルモデルダウンロードしたかったんですが、家の通信環境が貧弱すぎて一向に終わらず。。。
もしハンズオンされるときは是非フルモデルでやってみてください。
このハンズオンで初めて知りましたが、今回のやり方では再学習ができません。(こちらを参照ください)
フルモデルで実装して「ちくわぶ」を再学習して遊ぶとかやってみても面白いかもしれません。
モデル読み込み
今回はSageMaker上で実装しました。
SageMaker上へダウンロードしたzipファイルを送りunzipします。
その後はgensimモジュールを使ってベクトルをインポートします。
インポートまでたったこれだけ。らくちんですね。
!unzip vector.zip
!pip install gensim
import gensim
model = gensim.models.KeyedVectors.load_word2vec_format('model.vec', binary=False)
遊ぶ
そもそも「ちくわ」と「ふ」はあるのか
結論:ある。
いや、あるんかい。
学習データに竹輪と麩関連のデータがあったようです。
ちなみにちくわぶはありませんでした。(ひらがなにしてもダメ)
いや無いんかい。
その線引き何だよ。
ちくわ+ふ
most_similarメソッドの引数でpositiveパラメータにリスト型で渡すと足し算できます。
その結果は「生麩」。
原料が小麦粉という意味では竹輪麩とニアピンですが、竹輪の魅力である穴が無くなってしまいやや残念です。
ちくわーすり身
先ほどの結果に「すり身」があったので、ちくわからすり身を引いたらどうなるか試してみました。
理論上「穴」になるんでしょうか。
果たしてその結果は。
いや惟光だれだよ。
いや小太郎誰だよ。
調べたら惟光は源氏物語の人物のようです。
ちくわーすり身+小麦粉
もしかして、という希望をかけて小麦粉を足してみます。
これで「ちくわ+ふ」の結果に近くなれば私の勝ちです(?)。
こう見ると「ちくわ+ふ」のときに出てきた「餡」「漉し餡」「生麩」がランクインしていて、結構ちくわぶ寄り(?)の結果になっているのが見て取れます。
ちくわー穴
「穴」のベクトルもあるようだったので、「ちくわー穴」も試してみます。
答えは「はんぺん」。
急に納得感のある答えを出してきました。
はんぺんーすり身
先ほどのの実験結果では「すり身」を使ったため「惟光」が錬成されてしまいました。
この二つの違いは何なのか。
ここに「惟光」錬成の謎が隠されていると思いました。
いや麻倉誰だよ。
すごい普通な人でてきちゃったよ。
類似度0.259ということなので多分ひねり出した結果なんでしょう。
謎は深まるばかりです。
最後に
今回はネタ枠で遊んでみましたが、fastTextで簡単にこんなこともできます。
是非是非ハンズオンしてみてくださいね!