metadata
license: cc-by-sa-4.0
language:
- ja
widget:
- text: これは日本語の誤植を検出する真相学習モデルです。
モデルの概要
- 日本語の文章を入力すると各文字ごとに誤植である確率を出力します
- 本モデルは日本語の文章が入力されることを前提としています
- 各ラベルの意味は以下の通りです
id label meaning 0 OK 誤字なし 1 deletion 1文字の抜け 2 insertion_a 余分な1文字の挿入 3 insertion_b 直前の文字列と一致する2文字以上の余分な文字の挿入 4 kanji-conversion_a 同一の読みを持つ漢字の入れ替え(誤変換) 5 kanji-conversion_b 近い読みを持つ漢字の入れ替え(誤変換) 6 substitution 1文字の入れ替え 7 transposition 隣接する2文字間の転置 8 others その他の入力誤り - 誤り種類の詳細については学習データセットの元論文をご参照ください
学習データ
- 京都大学大学院情報学研究科知能情報学コース言語メディア研究室 (https://nlp.ist.i.kyoto-u.ac.jp/ )が公開している日本語Wikipedia入力誤りデータセット (v2)のtrainセットを利用しています
モデルの使い方
サンプルコード
from transformers import AutoTokenizer,AutoModelForTokenClassification
import torch
import numpy as np
model_name = 'recruit-jp/japanese-typo-detector-roberta-base'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTokenClassification.from_pretrained(model_name)
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = model.to(device)
in_text = "これは日本語の誤植を検出する真相学習モデルです。"
test_inputs = tokenizer(in_text, return_tensors='pt').get('input_ids')
test_outputs = model(test_inputs.to(torch.device(device)))
for chara, logit in zip(list(in_text), test_outputs.logits.squeeze().tolist()[1:-1]):
err_type_ind = np.argmax(logit)
err_name = model.config.id2label[err_type_ind]
err_desc = f"Detected!(err_index={err_type_ind}, err_name={err_name})" if err_type_ind > 0 else f""
print(f"{chara} : {err_desc}")
サンプルコードの出力例
こ :
れ :
は :
日 :
本 :
語 :
の :
誤 :
植 :
を :
検 :
出 :
す :
る :
真 : Detected!(err_index=4, err_name=kanji-conversion_a)
相 : Detected!(err_index=4, err_name=kanji-conversion_a)
学 :
習 :
モ :
デ :
ル :
で :
す :
。 :
ライセンス
- 本モデルは京都大学大学院情報学研究科知能情報学コース言語メディア研究室 (https://nlp.ist.i.kyoto-u.ac.jp/ )が公開しているRoBERTaの事前学習モデル(ku-nlp/roberta-base-japanese-char-wwm)をFine-Tuningしたものです。
- 本モデルは事前学習モデルのライセンス"CC-BY-SA 4.0"を継承します。
免責事項
- ㈱リクルートは、本モデル利用による成果に関し、正確性、有用性、確実性、違法性の確認及び何らの保証も補償を行わないものとし、また、モデル利用によって利用者に生じた損害および第三者との間における紛争について㈱リクルートは一切責任を負いません。