首页 > 编程知识 正文

中文内码输入法,中文能打出的特殊字符

时间:2023-05-05 03:55:26 阅读:223609 作者:1207

1 定义:

Named Entity Recognition,命名实体识别)是自然语言处理中常见的一项任务,使用的范围非常广。命名实体通常指的是文本中具有特别意义或者指代性非常强的实体,通常包括人名、地名、机构名、时间、专有名词等。NER系统就是从非结构化的文本中抽取出上述实体,并且可以按照业务需求识别出更多类别的实体,比如产品名称、型号、价格等。

2 方法:

NER问题的目标是从文本抽取出特定需求实体的文本片段。针对这个任务,通常使用基于规则的方法和基于模型的方法。

2.1 规则法

针对有特殊上下文的实体,或实体本身有很多特征的文本,使用规则的方法简单且有效。

比如,抽取文本中物品价格,如果文本中所有商品价格都是“数字+元”的形式,则可以通过正则表达式”d*.?d+元”进行抽取。随着语料数量的增加,面对的情况也越来越复杂,规则之间也可能发生冲突,整个系统也可能变得不可维护。

适合半结构化或比较规范的文本中的进行抽取任务,结合业务需求能够达到一定的效果。

优点:简单,快速

缺点:适用性差,维护成本高后期甚至不能维护

2.2 模型法

常见的序列标注模型包括HMM,CRF,RNN等模型。

HMM模型是一个生成式模型,包括两个序列三个矩阵:观察序列、隐藏序列、初始状态概率矩阵、状态转移概率矩阵、发射概率矩阵。通常情况下,我们要根据观察序列和三个矩阵,来得到隐藏序列。

CRF(Conditional random field,条件随机场)是一种判别式模型。条件随机场是给定随机变量X的情况下,随机变量Y的马尔科夫随机场。马尔科夫随机场是概率无向图模型,满足成对、局部及全局马尔可夫性。对于序列标注问题,一般使用线性链条件随机场。理论上CRF算法性能要优于HMM,因为CRF可以使用更多的特征,但同时,特征选择对于模型的性能有一定的影响,除此之外,相对于HMM,CRF模型的训练也更加复杂,时间相对较长。

RNN一般需要较大的训练数据,在小规模数据集上,CRF表现较好。在学术界,目前比较流行的做法是将BILISTM和CRF进行结合,借鉴两个模型各自的优点,来达到更好的效果。

3 基于CRF模型打造中文NER系统

CRF++官方主页:https://taku910.github.io/crfpp/

训练数据:http://icl.pku.edu.cn/icl_groups/corpus/dwldform1.asp

提取的是时间、人物、地点及组织机构名,即TIME、PERSON、LOCATION、ORGANIZATION四种实体。准备好包含分词和词性标注结果的数据集,由word/pos组成,中间以两个空格隔开。

模型训练需要4个步骤:

1,确定标签体系:常见的标签体系包括IO、BIO、BMEWO、BMEWO+

2,确定特征模板文件:CRF++会根据特征模版生成相关的特征函数

3,处理训练数据文件:训练数据是一行一个token,一句话由多行token组成。

4,模型训练:使用crf_learn命令,指定模版文件、训练数据文件和输出模型文件就可以进行训练。参数-f 1表示过滤频次低于1的特征,在这里不进行特征过滤,-c 1.0用来调节CRFs的超参数,c值越大越容易过拟合。除此之外,还有-a等其他参数进行控制调整。训练完毕,crf_test命令进行测试。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。