パスワードを忘れた? アカウント作成
14268259 journal
中国

yasuokaの日記: BaiduのDDParserをdeplacyに繫ぐには

日記 by yasuoka

ネットサーフィンしていたところ、DDParserという係り受け解析ツールが公開されているのを見つけたので、Google Colaboratoryで動かしてみた。

!pip install ddparser
from ddparser import DDParser
ddp=DDParser(use_pos=True)
doc=ddp.parse(["我把这本书看完了","我把這本書看完了","吾既讀是書也"])
print(doc)

「我把这本书看完了」「我把這本書看完了」「吾既讀是書也」の3つの文を解析してみたところ、私(安岡孝一)の手元では以下の結果になった。

[{'word': ['我', '把', '这本书', '看完', '了'], 'postag': ['r', 'p', 'r', 'v', 'xc'], 'head': [4, 4, 2, 0, 4], 'deprel': ['SBV', 'POB', 'POB', 'HED', 'MT']}, {'word': ['我', '把', '這本書', '看完', '了'], 'postag': ['r', 'p', 'r', 'v', 'xc'], 'head': [4, 4, 2, 0, 4], 'deprel': ['SBV', 'POB', 'POB', 'HED', 'MT']}, {'word': ['吾', '既', '讀', '是', '書', '也'], 'postag': ['r', 'c', 'v', 'v', 'n', 'd'], 'head': [3, 3, 0, 3, 4, 4], 'deprel': ['SBV', 'ADV', 'HED', 'VOB', 'VOB', 'MT']}]

うーむ、フォーマットも品詞体系も独特で、かなり読みにくい。無理矢理deplacyに繫いでみよう。

!pip install deplacy ddparser
from ddparser import DDParser
ddp=DDParser(use_pos=True)
nlp=lambda t:"".join(["\n".join(["\t".join([str(i+1),w,"_",p,p,"_",str(h),d,"_","SpaceAfter=No"]) for i,(w,p,h,d) in enumerate(zip(s["word"],s["postag"],s["head"],s["deprel"]))])+"\n\n" for s in ddp.parse(t)])
doc=nlp(["我把这本书看完了","我把這本書看完了","吾既讀是書也"])
import deplacy
deplacy.render(doc)
deplacy.serve(doc,port=None)

私の手元では、以下の結果と、こんな感じのSVGが得られた。

我     r  <════╗     SBV
把     p  ═╗<╗ ║     POB
这本书 r  <╝ ║ ║     POB
看完   v  ═╗═╝═╝     HED
了     xc <╝         MT
我     r  <════╗     SBV
把     p  ═╗<╗ ║     POB
這本書 r  <╝ ║ ║     POB
看完   v  ═╗═╝═╝     HED
了     xc <╝         MT
吾     r  <════════╗ SBV
既     c  <══════╗ ║ ADV
讀     v  ═════╗═╝═╝ HED
是     v  ═╗═╗<╝     VOB
書     n  <╝ ║       VOB
也     d  <══╝       MT

残念ながら「吾既讀是書也」は、読めていないようだ。品詞の「r」は、品詞一覧を見る限り代名詞だと思うのだが、「这本书」や「這本書」が一語になっていて「r」なのが、よく解らない。また、POBがどういう係り受けなのか、「看完」=POB⇒「把」=POB⇒「这本书」からは、イマイチ理解できない。ふーむ、まあ、現時点ではStanzaを使っておいた方がいいかな。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...