.net网站开发全过程,周村家具行业网站建设,如何建立公司的微信公众号,电商平台怎么开发文字错误类别#xff1a;多字 少字 形近字
当前方案
文本纠错思路 简单#xff1a; 一、构建自定义词典#xff0c;提高分词正确率。不在词典中#xff0c;也不是停用词#xff0c;分成单字的数据极有可能是错字#xff08;少部分可能是新词#xff09;。错字与前后的…文字错误类别多字 少字 形近字
当前方案
文本纠错思路 简单 一、构建自定义词典提高分词正确率。不在词典中也不是停用词分成单字的数据极有可能是错字少部分可能是新词。错字与前后的词语组成错词 分词工具cutword
二、利用字形相似度获取错词的字形最相似词语 参考 https://github.com/tiantian91091317/OCR-CorrectorFASPell采用字符串编辑距离进行计算
难点 字形相似度计算还不够准 错字与前后的词语组成的错词可能不准确 需要不断维护词典
解决的问题
提高检错率
jieba有HMM新词算法错词无法单独分出来
cutword 词典的一些词 对于 特定领域 可能是错词需要删除
提高组词正确率
百度 lac 词法分析工具 # baidu lacfrom LAC import LAC# 装载LAC模型
lac LAC(modelac)# 单个样本输入输入为Unicode编码的字符串text u含固书馆学、档案学lac_result lac.run(text)
lac_result
# [[含, 固书馆学, 、, 档案学], [v, n, w, n]]对于部分文本效果不错但是还有部分文本实体识别粒度太大比如 paddlenlp
taskflow.md 容易出现实体识别不出的情况,弃用
# 批量样本输入, 输入为多个句子组成的list平均速率更快
texts [uLAC是个优秀的分词工具, u百度是一家高科技公司]
lac_result lac.run(texts)# paddle nlp Taskflow
from pprint import pprint
from paddlenlp import Taskflowschema [专业名称, 地点, 人名,学校名称,班级名称] # Define the schema for entity extraction
ie Taskflow(information_extraction, schemaschema)
sentence 中外合作办学新西兰尼尔森马尔佰勤理工学院合作办学
sentence 日语、俄语、德语、法语、西班牙语人校后可参与选拨项目:涉外法治双主学位项目、国际新闻全英文实验班:各语种均有机会进人自标语言国著名高校进行交流学习
pprint(ie(sentence))初始思路
目标通过正确数据对错误数据进行检测与纠正 错字检测修正 检测错字 参考 kenLM统计语言模型构建与应用 kenlm
将正确数据分词构建词典 kenlm计算一个句子中连续的n个单词的概率来评估句子结构合法性kenlm检测错字有两种方法1.使用招生计划的数据做语料训练模型让模型对句子合法性打分 2.使用pycorrector kenlm模型检测错字 纠正错字 参考 https://github.com/shibing624/pycorrector 检测到的错字在一个词语中该词任一字都可能是错字。根据语义编辑距离找到该错字所在词语与字典中的词最相似的词如果相似度超出阈值则替代该词需要增加形近字字典利用正确数据训练一个自然语言处理模型类bert不将错字掩盖预测正确的字预测字与错字相似度超出阈值并在词典中则修正
kenlm
kemlm检错原理利用 2-gram 、3-gram 语言模型找到错误位置 利用形近字字表生成候选句对应上文的使P(O|I)最大的n个 Input 利用语言困惑度找到得分最低的候选句对应上文的使P(I)最大的Input。
使用pycorrector项目加入专有名词字典后数量大概有几万检索速度太太太慢。并且训练kenlm模型正确数据不够。所以放弃kenlm.
bert
待正确数据更多后再训练bert模型