日本語WordNetは概念辞書です。
概念同士の関係や概念に対応する言葉の定義が分かります。
本家のWordNetが元になっていて、日本語だけでなく英語も含まれています。
本家WordNetのドキュメントと日本語WordNetを照らし合わせると、違うところも多いので、日本語WordNetのデータ構造から中身を把握していくことにします。
日本語WordNet - http://compling.hss.ntu.edu.sg/wnja/jpn/index.html
本家WordNet - https://wordnet.princeton.edu/
SUMO - http://www.adampease.org/OP/
日本語WordNetのDB定義
日本語WordNetのSQLite版をダウンロードして、DB Browser for SQLiteで見るとこうなっています。
主要な定義
これだけおさえておけば、DBを使うことができます。
word
単語の文字列の定義です。同じ概念に結びついていることは、同義語であることを示します。
概念とはsenseを通じてつながっています。
キー | 説明 |
---|---|
wordid(int) | 単語ID(8桁の数字) |
lang | 言語(jpn:日本語, eng:英語) |
lemma | 文字列 |
pron | 読み方(DBではすべてNULL) |
sense
概念と単語を結び付ける定義です。
どういう呼び方をするかを決める情報だと思われます。
キー | 説明 |
---|---|
synset | 参照概念ID |
wordid(int) | 参照単語ID |
lang | 単語の言語 |
rank | 不明 |
lexid(int) | 不明(DBではengのみ1以上の値が入っている) |
freq(int) | 不明(DBではengのみ0以上の値が入っている) |
src | 不明 |
synset
概念の定義です。
概念が同じ単語は同義語、そうでない単語はリンクによる関連を持っている、もしくは持っていない単語です。
キー | 説明 |
---|---|
synset | 概念ID(8桁の数字-品詞ID) |
pos | 品詞ID |
src | 不明 |
synlink
概念間の関係の定義です。
関係の種類については、以下が分かりやすいと思います。
http://www.sist.ac.jp/~kanakubo/research/knowledge_representation/concept.html
キー | 説明 |
---|---|
synset1 | リンク元の参照概念ID |
synset2 | リンク先の参照概念ID |
link | リンクID |
src | 不明 |
実際のリンクの意味はこちら。
http://compling.hss.ntu.edu.sg/wnja/jpn/detail.html
pos_def
link_def
synset_def
概念の例文の定義です。
これはなくても使えますが、例文が集まって概念が成り立っていると考えると、重要な情報です。
キー | 説明 |
---|---|
synset | 参照概念ID |
lang | 例文の言語 |
def | 例文 |
sid | 不明 |
これ以外の情報はデータが不十分であったり、特に利用方法が明記されていなかったりしますが、とりあえず以上の情報をおさえておけば日本語WordNetを利用できると思います。
ImageNetとの関係
ImageNet - http://image-net.org/index
Deep Learningでよく使われている画像ライブラリであるImageNetは、WordNet 3.0のsynsetで分類されています。
最新のWordNetのバージョンは3.1で、synsetのコードが変わっているらしく、ImageNetと対応付かないみたいなのですが、日本語WordNetは3.0がベースなので問題ありません。
synsetのIDは同じですが、品詞IDの並べ方が異なっており、ImageNetでは以下のように指定する必要があります。
品詞ID + 8桁のID
例えば、"ネコ"の概念名は"true_cat"、synset IDは02121620、品詞IDは"n"なので、ImageNetのURIは以下のようになります。
日本語WordNetにアクセスするpythonライブラリ
概念オブジェクトをキーに操作するライブラリです。
既存の情報にアクセスするだけでなく、概念や単語を追加することもできます。