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

yasuokaの日記: chinese-bert-wwm-ext-uposによる現代中国語の係り受け解析

日記 by yasuoka

昨日の日記の手法をchinese-bert-wwm-ext-uposに適用して、現代中国語の係り受け解析モデルを試作してみた。Google Colaboratoryで動かしてみよう。

!pip install 'transformers>=4.7.0' 'supar>=1.1.1' 'deplacy>=2.0.1'
from transformers import AutoModelForTokenClassification,AutoTokenizer,TokenClassificationPipeline
from transformers.file_utils import cached_path,hf_bucket_url
from supar import Parser
brt="KoichiYasuoka/chinese-bert-wwm-ext-upos"
mdl=AutoModelForTokenClassification.from_pretrained(brt)
tkz=AutoTokenizer.from_pretrained(brt)
pos=TokenClassificationPipeline(model=mdl,tokenizer=tkz,aggregation_strategy="simple")
prs=Parser.load(cached_path(hf_bucket_url(brt,"supar.model")))
def nlp(s):
  d=pos(s)
  e=prs.predict([[t["word"].replace(" ","") for t in d]])
  e.sentences[0].values[3]=tuple([t["entity_group"] for t in d])
  e.sentences[0].values[9]=tuple(["SpaceAfter=No" if t["end"]==u["start"] else "_" for t,u in zip(d,d[1:])]+["_"])
  return e
doc=nlp("下雨天和星期一总是让我沮丧")
import deplacy
deplacy.render(doc)
deplacy.serve(doc,port=None)

「下雨天和星期一总是让我沮丧」を係り受け解析してみたところ、私(安岡孝一)の手元では以下の結果になった。

下雨 NOUN  <╗       compound
天   PART  ═╝═╗═╗<╗ nsubj
和   CCONJ <╗ ║ ║ ║ cc
星期 NOUN  ═╝<╝ ║ ║ conj
一   NUM   <════╝ ║ nummod
总   ADV   <════╗ ║ advmod
是让 VERB  ═══╗═╝═╝ root
我   PRON  <╗ ║     nsubj
沮丧 ADJ   ═╝<╝     ccomp

1    下雨    _    NOUN    _    _    2    compound    _    SpaceAfter=No
2    天    _    PART    _    _    7    nsubj    _    SpaceAfter=No
3    和    _    CCONJ    _    _    4    cc    _    SpaceAfter=No
4    星期    _    NOUN    _    _    2    conj    _    SpaceAfter=No
5    一    _    NUM    _    _    2    nummod    _    SpaceAfter=No
6    总    _    ADV    _    _    7    advmod    _    SpaceAfter=No
7    是让    _    VERB    _    _    0    root    _    SpaceAfter=No
8    我    _    PRON    _    _    9    nsubj    _    SpaceAfter=No
9    沮丧    _    ADJ    _    _    7    ccomp    _    _

SVGで可視化すると、こんな感じ。「天」=nummod⇒「一」はどう考えても変で、「星期」=nummod⇒「一」とすべきだろう。また、「我」⇐nsubj=「沮丧」は「是让」=obj⇒「我」とした上で、「是让」=ccomp⇒「沮丧」をxcompにしたいところだ。うーん、このあたり、どうすれば精度を上げられるかな。

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

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...