yasuokaの日記: bert-large-japanese-uposで読む「難儀な難儀は難儀する」
昨日の日記に続いて、日本語向けの品詞付与モデルbert-large-japanese-uposも作ってみたのだが、どうも解析精度が上がらない。とりあえず、Google Colaboratoryで動かしてみよう。
!pip install transformers
import torch
from transformers import AutoTokenizer,AutoModelForTokenClassification
tokenizer=AutoTokenizer.from_pretrained("KoichiYasuoka/bert-large-japanese-upos")
model=AutoModelForTokenClassification.from_pretrained("KoichiYasuoka/bert-large-japanese-upos")
s="難儀な難儀は難儀する"
p=[model.config.id2label[q] for q in torch.argmax(model(tokenizer.encode(s,return_tensors="pt"))[0],dim=2)[0].tolist()[1:-1]]
print(list(zip(s,p)))
「難儀な難儀は難儀する」に品詞付与してみたところ、私(安岡孝一)の手元では以下の結果になった。
[('難', 'B-NOUN'), ('儀', 'I-NOUN'), ('な', 'AUX'), ('難', 'B-NOUN'), ('儀', 'I-NOUN'), ('は', 'ADP'), ('難', 'B-NOUN'), ('儀', 'I-NOUN'), ('す', 'B-AUX'), ('る', 'I-AUX')]
うーむ、「難儀」が全てNOUNになってしまってる。これだと、UniDic2UDの解析精度に全く追いつかないのだけど、どうしたらいいかなぁ。
bert-large-japanese-uposで読む「難儀な難儀は難儀する」 More ログイン