2017年9月9日 星期六

wordnet 名詞從屬關係繪圖

dog cat horse domestic_ass cow ox sheep 的 hypernyms ape 的 hyponyms Wordnet [官網 維基百科] 是 Princeton 大學所建立的英文詞典。 裡面的詞彙 按照觀念 整理, 而不是按照字的拼字/外形整理。 例如 "fall.n.01" 是 「秋天」 的概念, 跟 "autumn.n.01" 是同一個概念, 兩者只是第 15236859 號名詞的不同寫法; 而 "fall.v.01" 則是另一個字 「跌倒」, 它是第 1972298 號動詞。 名詞之間有從屬關係。 例如 "great_ape" 巨猿有三個 hyponym (下義詞): chimpanzee (黑猩猩)、 gorilla (大猩猩)、 orang_utan (紅毛猩猩); 反過來說, "great_ape" 是 chimpanzee 的 hypernym (上義詞)。 可以大約把這理解為界門綱目科屬種的階層分類概念; 但它是英文詞典不是生物辭典, 所以畫出來的樹狀關係並不具有真正生物分類學的意義。 而且畫出來的也未必是樹狀關係, 有可能是 directed acyclic graph。

準備工作:

  1. 按照 這篇 的三個 python 指令下載 wordnet 資料集。
  2. 下載 gvhype.py
  3. 安裝 graphviz 套件

想要知道 "ape" 這個名詞底下還細分成哪些名詞, 可以這樣做:

gvhyp.py ape > ape.dot
dot -Tsvg ape.dot > ape.svg

然後用瀏覽器 「檔案=>開啟」 ape.svg 。 例如 silverback 是大猩猩群體裡面的 alpha male (人類世界川普王的概念), 並不是一個亞種。

gvhyp.py 預設是向下展開; 但也可以用 -d up 指定反過來向上展開。 另外, 命令列上可以不只一個名詞。 這些名詞也可以用 wordnet 的語法寫。 例如本文另一張插圖是這樣產生的: ./gvhyp.py -d up n02084071 n02121620 horse ass.n.03 cow ox sheep > domestic_animals.dot ; dot -Tsvg domestic_animals.dot > domestic_animals.svg 其中 dog 就有兩個 hypernyms: canine 跟 domestic_animal。

比方說想要 下載 ImageNet 訓練圖片的一小部分 來訓練可以分辨各種猿類相片的類神經網路, 就可以先用 gvhyp.py 了解一下 ape 底下有哪些名詞, 其中哪些名詞可以歸為同一類, 然後建立 「一小部分」 那篇文章當中所需要的 ape-wnid.txt。

這個小工具對英語教學可能也有一些幫助。

沒有留言:

張貼留言