[テキスト誤り訂正]pycorrectorフレームワークテスト
9321 ワード
pycorrector:https://github.com/shibing624/pycorrector
pycorrector
ハーモニーワード、例えば副眼-副眼鏡 混同音字詞、例えば流浪織女-牛郎織女 ウディエレン-エレンウディ 字词补全,如爱有天意-如爱有天意 形似字エラー、例えば高梁-コウリャン 中文拼音全拼,如xingfu-幸福 中国語ピンイン略語、例えばsz-深セン 文法が間違っていて、想像が難しい-想像しにくい もちろん、異なるビジネスシーンに対して、これらの問題は必ずしもすべて存在するわけではありません.例えば、入力法では前の4種類を処理する必要があり、検索エンジンではすべてのタイプを処理する必要があります.音声認識後のテキスト誤り訂正は前の2種類を処理する必要があります.そのうち、「形似字誤り」は主に5筆または筆画手書き入力などです.
全自動インストール:pip install pycorrector 半自動インストール:
以上の2つの方法のいずれかでインストールを完了できます.インストールしたくない場合はgithubソースパッケージをダウンロードし、インストールしてから使用してください.
kenlmインストール その他のパッケージのインストール
テキスト誤り訂正
output:
ルール・メソッドのデフォルトでは、kenlm言語モデル・ファイルがパスエラー検出
output:
戻りタイプは、クローズワード粒度誤り訂正
output:
上記の例では
output:
デフォルトのワード粒度、ワード粒度の誤り訂正はすべて開いており、一般的には単語エラーの発生は少なく、ワード粒度の誤り訂正精度は低い.ワード粒度誤り訂正をオフにすることで、誤り訂正精度を向上させ、誤り訂正速度を向上させることができる.
デフォルト
リコール率ではなく精度を追求する場合は、カスタム混同セットのロード カスタム混同セットをロードすることで、ユーザーが既知のエラーを修正することをサポートします.2つの機能があります.1)エラー補完リコール;2)誤殺加白.
output:
詳細はexample/useを参照してください.custom_confusion.py、カスタム言語モデルのロード デフォルトでダウンロードして使用できるkenlm言語モデル
ユーザーが自分の訓練をロードするkenlm言語モデルをサポートしたり、2014版人民日報データ訓練のモデルを使用したりして、モデルは小さく(20 M)、精度は低い.
output:
詳細はexample/loadを参照してください.custom_language_model.py,
pycorrector
中国語テキスト誤り訂正ツール.音似、形似誤字(または変体字)訂正は、中国語のピンイン、筆画入力法の誤り訂正に用いることができる.python3.6開発.
pycorrectorは言語モデルに基づいて誤字位置を検出し、ピンイン音似特徴、筆画五筆編集距離特徴及び言語モデル困惑度特徴によって誤字を修正する.
Question
中国語テキスト誤り訂正タスク、一般的なエラータイプは以下のとおりです.
Install
git clone https://github.com/shibing624/pycorrector.git
cd pycorrector
python setup.py install
以上の2つの方法のいずれかでインストールを完了できます.インストールしたくない場合はgithubソースパッケージをダウンロードし、インストールしてから使用してください.
インストール依存
pip install https://github.com/kpu/kenlm/archive/master.zip
pip install -r requirements.txt
Usage
import pycorrector
corrected_sent, detail = pycorrector.correct(' ')
print(corrected_sent, detail)
output:
[[(' ', ' ', 4, 6)], [(' ', ' ', 10, 11)]]
ルール・メソッドのデフォルトでは、kenlm言語モデル・ファイルがパス
~/.pycorrector/datasets/zh_giga.no_cna_cmn.prune01244.klm
からロードされ、ファイルが検出されない場合、プログラムは自動的にネットワーク・ダウンロードされます.もちろん、モデルファイル(2.8 G)を手動でダウンロードしてその場所に配置することもできます.import pycorrector
idx_errors = pycorrector.detect(' ')
print(idx_errors)
output:
[[' ', 4, 6, 'word'], [' ', 10, 11, 'char']]
戻りタイプは、
list
,[error_word, begin_pos, end_pos, error_type]
,pos
インデックス位置が0で始まる.import pycorrector
error_sentence_1 = ' '
correct_sent = pycorrector.correct(error_sentence_1)
print(correct_sent)
output:
' ', [[' ', ' ', 12, 14], [' ', ' ', 14, 15]]
上記の例では
エラー訂正が発生し、以下のコードはワード粒度誤り訂正を閉じる.import pycorrector
error_sentence_1 = ' '
pycorrector.enable_char_error(enable=False)
correct_sent = pycorrector.correct(error_sentence_1)
print(correct_sent)
output:
' ', [[' ', ' ', 12, 14]]
デフォルトのワード粒度、ワード粒度の誤り訂正はすべて開いており、一般的には単語エラーの発生は少なく、ワード粒度の誤り訂正精度は低い.ワード粒度誤り訂正をオフにすることで、誤り訂正精度を向上させ、誤り訂正速度を向上させることができる.
デフォルト
enable_char_error
メソッドのenable
パラメータはTrue
であり、すなわち誤字訂正を開くことで、字粒度エラーをリコールすることができるが、全体の精度は低い.リコール率ではなく精度を追求する場合は、
enable
をFalse
に設定し、誤語のみで訂正することをお勧めします.import pycorrector
pycorrector.set_log_level('INFO')
error_sentences = [
' iPhone , ',
' 、 、 ',
]
for line in error_sentences:
print(pycorrector.correct(line))
print('*' * 53)
pycorrector.set_custom_confusion_dict(path='./my_custom_confusion.txt')
for line in error_sentences:
print(pycorrector.correct(line))
output:
(' iPhone , ', []) # "iPhone " , "iphoneX"
(' 、 、 ', [[' ', ' ', 14, 17]]) # " " ,
*****************************************************
(' iPhoneX, ', [['iPhone ', 'iPhoneX', 1, 8]])
(' 、 、 ', [])
詳細はexample/useを参照してください.custom_confusion.py、
./my_custom_confusion.txt
のコンテンツフォーマットは、スペース間隔で次のようになります.iPhone iPhoneX 100
set_custom_confusion_dict
メソッドのpath
パラメータは、ユーザのために混同セットファイルパスをカスタマイズする.zh_giga.no_cna_cmn.prune01244.klm
ファイルは2.8 Gで、メモリの小さいパソコンでpycorrector
プログラムを使用するのは骨が折れるかもしれません.ユーザーが自分の訓練をロードするkenlm言語モデルをサポートしたり、2014版人民日報データ訓練のモデルを使用したりして、モデルは小さく(20 M)、精度は低い.
from pycorrector import Corrector
pwd_path = os.path.abspath(os.path.dirname(__file__))
lm_path = os.path.join(pwd_path, './people_chars_lm.klm')
model = Corrector(language_model_path=lm_path)
corrected_sent, detail = model.correct(' ')
print(corrected_sent, detail)
output:
[[(' ', ' ', 4, 6)], [(' ', ' ', 10, 11)]]
詳細はexample/loadを参照してください.custom_language_model.py,
./people_chars_lm.klm
はカスタム言語モデルファイルである.