yasuokaの日記: esuparの国語研長単位向け係り受け解析モデルbert-base-japanese-unidic-luw-uposリリース 2
人文科学とコンピュータで発表予定の『Transformersと国語研長単位による日本語係り受け解析モデルの製作』に向けて、国語研長単位向け係り受け解析モデルbert-base-japanese-unidic-luw-uposを公開した。このモデルはbert-base-japanese-v2をファインチューニングしたもので、内部的にはBertJapaneseTokenizer(つまりはfugashiとunidic-lite)でトークナイズした後に、品詞付与と同時に国語研長単位へと組み上げる。この摩訶不思議な動作の際に、pytokenizationsの助けを必要とする。最新版のesuparとともに試してみよう。
$ pip3 install -U esupar fugashi unidic-lite pytokenizations
$ python3
>>> import esupar
>>> nlp=esupar.load("KoichiYasuoka/bert-base-japanese-unidic-luw-upos")
>>> doc=nlp("全学年にわたって小学校の国語の教科書に大量の挿し絵が用いられている")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
全学年 NOUN ═╗<══════╗ obl(斜格補語)
にわたって ADP <╝ ║ case(格表示)
小学校 NOUN ═╗<╗ ║ nmod(体言による連体修飾語)
の ADP <╝ ║ ║ case(格表示)
国語 NOUN ═╗═╝<╗ ║ nmod(体言による連体修飾語)
の ADP <╝ ║ ║ case(格表示)
教科書 NOUN ═╗═══╝<╗ ║ obl(斜格補語)
に ADP <╝ ║ ║ case(格表示)
大量 ADJ ═╗<╗ ║ ║ nmod(体言による連体修飾語)
の ADP <╝ ║ ║ ║ case(格表示)
挿し絵 NOUN ═╗═╝<╗ ║ ║ nsubj(主語)
が ADP <╝ ║ ║ ║ case(格表示)
用い VERB ═╗═╗═╝═╝═╝ root(親)
られ AUX <╝ ║ aux(動詞補助成分)
ている SCONJ <══╝ mark(標識)
「にわたって」や「ている」がちゃんと1語に組み上げられているが、内部ではかなり苦労している。品詞付与まわりを、ちょっとだけ覗いてみよう。
>>> from transformers import TokenClassificationPipeline
>>> ppl=TokenClassificationPipeline(tokenizer=nlp.tokenizer,model=nlp.tagger,aggregation_strategy="none")
>>> d=ppl("全学年にわたって小学校の国語の教科書に大量の挿し絵が用いられている")
>>> print([(t["word"],t["entity"]) for t in d])
[('全', 'B-NOUN'), ('学年', 'I-NOUN'), ('に', 'B-ADP'), ('わたっ', 'I-ADP'), ('て', 'I-ADP'), ('小', 'B-NOUN'), ('学校', 'I-NOUN'), ('の', 'ADP'), ('国語', 'NOUN'), ('の', 'ADP'), ('教科', 'B-NOUN'), ('書', 'I-NOUN'), ('に', 'ADP'), ('大量', 'ADJ'), ('の', 'ADP'), ('挿', 'B-NOUN'), ('##し', 'I-NOUN'), ('##絵', 'I-NOUN'), ('が', 'ADP'), ('用い', 'VERB'), ('られ', 'AUX'), ('て', 'B-SCONJ'), ('いる', 'I-SCONJ')]
unidic-liteは「にわたって」を「に」「わたっ」「て」とトークナイズするので、これを組み上げるために、「B-ADP」「I-ADP」「I-ADP」と品詞付与しているわけだ。ただ、「大量」が「ADJ」になってしまっているのは、ちょっと残念だったりする。「大量に」と「大量の」をちゃんと見分けさせるには、さて、どうしたらいいのかな。
早速、使わせていただきました。 (スコア:1)
esuparとGiNZA (スコア:2)
esuparを使って下さってありがとうございます。ただ、esuparはGiNZAと違って、LEMMA(見出し語形)とかを導出してないのです。まあ、国語研長単位における見出し語形って、そもそもどうしたらいいのか難しいのですけど…。