File size: 4,288 Bytes
44e3dca
 
af5206a
 
f76549d
0fc73c6
ba95365
4d4990e
44e3dca
5a8e2f7
 
 
4cfa24d
52add50
 
 
 
 
 
 
 
 
 
 
 
a956718
 
4cfa24d
 
 
af5206a
5a8e2f7
a956718
52add50
5a8e2f7
a956718
af5206a
7665c5f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a956718
7665c5f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
af5206a
1378c41
 
ba95365
5a8e2f7
 
af5206a
 
5a8e2f7
9f8f41c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
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"を継承します。

## 免責事項
  - ㈱リクルートは、本モデル利用による成果に関し、正確性、有用性、確実性、違法性の確認及び何らの保証および補償を行わないものとし、また、モデル利用によって利用者に生じた損害および第三者との間における紛争について㈱リクルートは一切責任を負いません。