パスワードを忘れた? アカウント作成
15566082 journal
人工知能

yasuokaの日記: esuparの国語研長単位向け係り受け解析モデルbert-base-japanese-unidic-luw-uposリリース 2

日記 by yasuoka

人文科学とコンピュータで発表予定の『Transformersと国語研長単位による日本語係り受け解析モデルの製作』に向けて、国語研長単位向け係り受け解析モデルbert-base-japanese-unidic-luw-uposを公開した。このモデルはbert-base-japanese-v2をファインチューニングしたもので、内部的にはBertJapaneseTokenizer(つまりはfugashiunidic-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」になってしまっているのは、ちょっと残念だったりする。「大量に」と「大量の」をちゃんと見分けさせるには、さて、どうしたらいいのかな。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
  • ある植物の記述文にある、「2回3出複葉をつけ、」の形態素解析結果は、 GiNZA4.0.5をデフォルト設定で使った場合、[2, 回, 3, 出, 複葉, ... ] となり、 ”2回3出複葉"をユーザ辞書登録しないと上手く使えませんでした。 今回は、[2回, 3出複葉, ...]と、適切に纏められた結果となり、辞書登録は必要なく、上手く扱えそうです。 山本富士男
    • by yasuoka (21275) on 2022年02月13日 22時21分 (#4199373) 日記

      esuparを使って下さってありがとうございます。ただ、esuparはGiNZAと違って、LEMMA(見出し語形)とかを導出してないのです。まあ、国語研長単位における見出し語形って、そもそもどうしたらいいのか難しいのですけど…。

      親コメント
typodupeerror

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...