Apitore blog

Apitoreを運営していた元起業家のブログ

【API】同義語(っぽい)APIを公開しました

はじめに

同義語っぽいAPIを公開しました。こちらで公開しています。実体はWord2VecのDistance APIです。日本語Wikipedia全文にNeologdの辞書を適用して学習データにしました。今回はこの同義語っぽいAPIの動作を色々と見てみましょう。 amarec (20160928-183827)

サンプルコード

API

同義語辞書WebAPI

動作を見る

さっそく使ってみましょう。

「アディダス」を入力してみる

以前、Word2VecのAPIを公開したときの投稿でもご紹介しましたが、例えば「アディダス」を入力すると、以下の結果を返します。競合会社と製品が出てきますね。

単語 コサイン距離(≒類似度)
ニューバランス 0.753
アシックス 0.751
アディダスジャパン 0.713
ナイキ 0.706
シューズ 0.705

「太る」を入力してみる

一般動詞を入力してみましょう。最近の私の悩みである「太る」を入力すると、、、同義語ではないですね。反意語とネガティブな動詞が出てきました。「太る」の悩みは「老ける」の悩みに通じるものがあるのかもしれません。「老ける」人への励ましの言葉を少し改変すれば「太る」人への励ましの言葉を自動生成できるかもしれませんね。

単語 コサイン距離(≒類似度)
痩せる 0.806
老ける 0.766
太れ 0.753
臭う 0.745
噛め 0.742

「犬」を入力してみる

一般名詞を入力してみましょう。「犬」の場合は、、、近い動物が出てきました。同義語ではないですが、例えば「犬」を飼おうと迷っている人と「猫」を飼おうと迷っている人の悩みは共通するかもしれません。

単語 コサイン距離(≒類似度)
0.828
子犬 0.752
ネコ 0.749
オオカミ 0.738
イヌ 0.730

「温かい」を入力してみる

形容詞もいってみましょうか。「温かい」の場合は、、、ほぼ同義語ですね。形容詞はそのまま検索クエリ拡張に使えそうです。

単語 コサイン距離(≒類似度)
暖かい 0.810
冷たい 0.776
温かく 0.739
暖まる 0.706
あたたかい 0.706

「十二国記」を入力してみる

個人的に大好きな小説「十二国記」を入力してみます。結果は、、、なんでしょう?少し調べてみたところ、どれも小説や漫画やゲームのようです。内容的に近いのでしょうか?ちょっと読書欲が湧いてきました。

単語 コサイン距離(≒類似度)
黄塵 0.669
銀河戦国群雄伝ライ 0.668
帝国千戦記 0.644
蒼天航路 0.643
閃光のナイトレイド 0.641

分析する

上記の例の他に動作を色々と見たところ、だいたい以下な感じでした。

  • 形容詞、形容動詞、副詞は(ほぼ)同義語が出る。同義語として使って問題なさそう。
  • 固有名詞、名詞、動詞は同義語っぽいものが出る。入力単語と出力単語を入れ替えても文的に意味は通じる。質問サイトの類似回答を引っ張るのに使えるかも。

おわりに

非常に興味深いAPIが出来ました。Word2Vecは単語の意味をよく捉えていますね。色々とハックが進みそうです。こちらで無料で試せるので、ぜひ試してみて下さい。

2017/2/27追記

APIコールのRubyサンプルを追加しました。