LoginSignup
2
2

More than 3 years have passed since last update.

fastTextと「ちくわぶ」で遊んでみる

Posted at

ふと思ったんです

ちくわぶってあるじゃないですか。
あいつって文字通り「ちくわ」と「ふ」を足したような名前してますけど、
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)

遊ぶ

そもそも「ちくわ」と「ふ」はあるのか

結論:ある。
いや、あるんかい。
学習データに竹輪と麩関連のデータがあったようです。
image.png

image.png

ちなみにちくわぶはありませんでした。(ひらがなにしてもダメ)
いや無いんかい。
その線引き何だよ。
image.png

ちくわ+ふ

most_similarメソッドの引数でpositiveパラメータにリスト型で渡すと足し算できます。
その結果は「生麩」。
原料が小麦粉という意味では竹輪麩とニアピンですが、竹輪の魅力である穴が無くなってしまいやや残念です。
image.png

ちくわーすり身

先ほどの結果に「すり身」があったので、ちくわからすり身を引いたらどうなるか試してみました。
理論上「穴」になるんでしょうか。
果たしてその結果は。
image.png

いや惟光だれだよ。
いや小太郎誰だよ。
調べたら惟光は源氏物語の人物のようです。

ちくわーすり身+小麦粉

もしかして、という希望をかけて小麦粉を足してみます。
これで「ちくわ+ふ」の結果に近くなれば私の勝ちです(?)。
image.png
こう見ると「ちくわ+ふ」のときに出てきた「餡」「漉し餡」「生麩」がランクインしていて、結構ちくわぶ寄り(?)の結果になっているのが見て取れます。

ちくわー穴

「穴」のベクトルもあるようだったので、「ちくわー穴」も試してみます。
image.png
答えは「はんぺん」。
急に納得感のある答えを出してきました。

はんぺんーすり身

先ほどのの実験結果では「すり身」を使ったため「惟光」が錬成されてしまいました。
この二つの違いは何なのか。
ここに「惟光」錬成の謎が隠されていると思いました。
image.png
いや麻倉誰だよ。
すごい普通な人でてきちゃったよ。
類似度0.259ということなので多分ひねり出した結果なんでしょう。
謎は深まるばかりです。

最後に

今回はネタ枠で遊んでみましたが、fastTextで簡単にこんなこともできます。
是非是非ハンズオンしてみてくださいね!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2