|
--- |
|
license: cc-by-sa-4.0 |
|
language: |
|
- ja |
|
base_model: ku-nlp/roberta-base-japanese-char-wwm |
|
widget: |
|
- text: "これは日本語の誤植を検出する真相学習モデルです。" |
|
example_title: "Example1" |
|
--- |
|
# recruit-jp/japanese-typo-detector-roberta-base |
|
|
|
## モデルの概要 |
|
- 日本語の文章を入力すると各文字ごとに誤字脱字である確率を出力します |
|
- 各ラベルの意味は以下の通りです |
|
|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 | その他の入力誤り |
|
- 誤り種類の詳細については学習データセットの元論文をご参照ください |
|
- [日本語 Wikipedia の編集履歴に基づく 入力誤りデータセットと訂正システムの改良](https://www.anlp.jp/proceedings/annual_meeting/2021/pdf_dir/E8-3.pdf) |
|
|
|
- その他、モデルの詳細については当社ブログ記事をご参照ください |
|
- [誤字脱字検出モデルをHugging Face Hubに公開しました (Recruit Data Blog)](https://blog.recruit.co.jp/data/articles/typo-detector/) |
|
|
|
## 学習データ |
|
* 京都大学大学院情報学研究科知能情報学コース言語メディア研究室 (https://nlp.ist.i.kyoto-u.ac.jp/ )が公開している[日本語Wikipedia入力誤りデータセット (v2)](https://nlp.ist.i.kyoto-u.ac.jp/?%E6%97%A5%E6%9C%AC%E8%AA%9EWikipedia%E5%85%A5%E5%8A%9B%E8%AA%A4%E3%82%8A%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88)のtrainセットを利用しています |
|
|
|
## モデルの使い方 |
|
* **サンプルコード** |
|
```python |
|
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) |
|
学 : |
|
習 : |
|
モ : |
|
デ : |
|
ル : |
|
で : |
|
す : |
|
。 : |
|
``` |
|
## 開発者 |
|
- [Keisuke Kiryu](https://huggingface.co/keisuke-kiryu) |
|
|
|
## ライセンス |
|
- 本モデルは京都大学大学院情報学研究科知能情報学コース言語メディア研究室 (https://nlp.ist.i.kyoto-u.ac.jp/ )が公開しているRoBERTaの事前学習モデル([ku-nlp/roberta-base-japanese-char-wwm](https://huggingface.co/ku-nlp/roberta-base-japanese-char-wwm))をFine-Tuningしたものです。 |
|
- 本モデルは事前学習モデルのライセンス"CC-BY-SA 4.0"を継承します。 |
|
|
|
## 免責事項 |
|
- ㈱リクルートは、本モデル利用による成果に関し、正確性、有用性、確実性、違法性の確認及び何らの保証および補償を行わないものとし、また、モデル利用によって利用者に生じた損害および第三者との間における紛争について㈱リクルートは一切責任を負いません。 |
|
|