generated at
wordnet
conceptnetがメインストリームかも @2019

公式ぽいもの

NLTKでの利用方法 #nltk
corpusのdownload
python
import nltk nltk.download('omw') nltk.download('wordnet') from nltk.corpus import wordnet as wn
とすると、downloadされる
cmd
!head /root/nltk_data/corpora/omw/jpn/wn-data-jpn.tab !wc -l /root/nltk_data/corpora/omw/jpn/wn-data-jpn.tab >>>>> # Japanese Wordnet jpn http://nlpwww.nict.go.jp/wn-ja/ wordnet 00001740-a jpn:lemma 可能 00001740-n jpn:lemma 実体 00001740-r jpn:lemma アカペラで 00001740-v jpn:lemma 吐く 00001740-v jpn:lemma 呼吸+する 00001740-v jpn:lemma 息づく 152300 /root/nltk_data/corpora/omw/jpn/wn-data-jpn.tab 152300文字
> 158,069
152

NLTKを使った, wordnetの情報の取り出し例。
日本語も(ある程度?)いける。概念辞書なので
synset(概念)にしたあとは、synsetベースでやる。
synsetの定義と例の日本語は、上記にある。NLTKには直接はいってないけど、synset のidでmappignすればよい

名詞は、上位語(hypernyms)をたどると、 'entiry' になるが、動詞はたくさん。550くらいある。下の数字はその木のリーフ(語)の数。
python
from collections import Counter from itertools import chain root_hypernyms_of_verbs = Counter(chain(*[ss.root_hypernyms() for ss in wn.all_synsets(pos='v')])) root_hypernyms_of_verbs.most_common(10) """ [(Synset('change.v.01'), 1704), (Synset('change.v.02'), 1295), (Synset('act.v.01'), 1083), (Synset('move.v.02'), 1027), (Synset('make.v.03'), 659), (Synset('travel.v.01'), 526), (Synset('think.v.03'), 451), (Synset('transfer.v.05'), 420), (Synset('move.v.03'), 329), (Synset('connect.v.01'), 262)]"""


以下は、(結果として)古い情報のサーチとなってしまったかも。
=========================================================================================
機械学習の時代に効用がどれくらい高いかわからないけど、一つの情報としてもっておくのはよさそう。
言葉の整理の仕方とかでも参考になるはず。整理した分が脳内に持てる量。

> 日本語ワードネットに収録されたsynset数や単語数、語義数は次のとおりです。
> 57,238 概念 (synset数)
> 93,834 words 語
> 158058 語義 (synsetと単語のペア)
> 135,692 定義文
> 48,276 例文

>(データ用テーブル)
> № テーブル名 説明
> 1 word 日本語および英語の単語情報
> 2 synset 単語の持つ概念をまとめたもの
> 3 sense 単語と概念の紐付けを管理する
> 4 synlink synset間の関係性を管理する
> 5 ancestor synset間の関係性の深さ(世代数)を管理する
> 6 xlink synsetと上位オントロジーSUMO(※)との関係性を管理する
> 7 variant 単語の特殊な読み方を管理するためのテーブルと思われる。日本語Wordnetではデータ無し。
中の カラムの説明がないみたい。これは、英語版で調べるしかない?

ここからdownloadして、
SQLite3で十分なのだけど、cloud functionで引けるようにしたい。
が、Google Cloud Functionsでの sqlite3のファイルの置き方がわからないので、gcpの cloud sqlのmysqlにいれる。
Google Cloud Storageにおいて読み込むのだと遅そう。

sqlite dump -> mysql dump. 下のサイトでやってくれる。 5分くらいで出来て、レスポンスが来た。
$ curl] -F files[]=@localfilepath .....

それを、cloud sql の mysqlインスタンスに入れる。dumpfileにはDB名がないので、importする際にDB名を指定して入れる。
一番安いので月1000円弱。つかわなくなったら、dumpしておいて インスタンス消せば良い。

cloud shell上のconsoleで見てたけど、イメージわかないので、phpmyadminを入れる。
GAE のstandard PHPで簡単にいけた。
gaeは、認証が楽。 adminつけておけば良い。

ER図も欲しいけど。。ツールは転がってそう。

あとは、類語や概念の上下をどう図示するのが良いかという話になる。

weblioの例

この scrapboxもそうだけど、どう知識をネットワークしておくと、楽しいか?という話。
数学より、理解の積み上げがし易い。


参考