Apitore blog

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

【API】上位概念辞書と下位概念辞書 ~WordNetの一部を切り出すシリーズ~

はじめに

先日、WordNetをシンプルに使えるWebAPIを公開しました。簡単で分かりやすいWebAPIですが、用途によっては冗長な場合もあります。今回は上位概念辞書下位概念辞書をそれぞれWebAPIで切り出しました。

API

サンプルコード

解説

TIPS

名詞はそのまま使えますが、動詞や形容詞は語尾が活用します。WordNetは標準形のみを入力に取ります。「標準形なんてわかんねーよ」って場合は、形態素解析を挟むと良いです。 例えば、Apitoreで公開しているkuromoji WebAPIに単語を入力すると、レスポンスの中にbaseFormというものがあります。これが標準形です。 例を挙げると、「やってみる」の形態素解析結果から標準形を取ると、「やる」「て」「みる」になります。

使ってみた

WordNetの公式ページはこちらです。商用利用可能です。上位概念辞書と下位概念辞書は組み合わせるとおもしろいかも? 例えば「オオカミ」の上位概念はこうなります。

"entries": [
  {
    "labelen": "hype",
    "labelja": "上位語",
    "pos": "n",
    "words": [
      "イヌ科動物"
    ]
  },
]

この出力である「イヌ科動物」を下位概念辞書APIに入力すると・・・

"entries": [
  {
    "labelen": "hypo",
    "labelja": "下位語",
    "pos": "n",
    "words": [
      "飼い犬",
      "牝犬",
      "飼犬",
      "フォックス",
      "狐狸",
      "ジャッカル",
      "キツネ",
      "稲荷",
      "ドッグ",
      "雌",
      "犬",
      "洋犬",
      "ウルフ",
      "イヌ",
      "オオカミ",
      "狐",
      "雌犬",
      "ハイエナ",
      "狼"
    ]
  }
]

こんな感じ。なんかクエリ拡張に使えそうじゃない? ちなみに先ほど公開した同義語辞書 (WordNet版)ではこんな感じ。正確なんだけど、ちょっと物足りない。

"entries": [
  {
    "labelen": "syns",
    "labelja": "同義語",
    "pos": "n",
    "words": [
      "狼",
      "ウルフ"
    ]
  }
]

おわりに

今回はWordNetの上位概念辞書下位概念辞書をそれぞれ抜粋してWebAPIにしました。上位概念と下位概念は組み合わせると同義語とは違った感じに単語が展開されておもしろいです。