[机器学习入门】文本分析知识点汇总

词法分析包括分词、词性标注、命名实体识别和词义消歧。

文本分词

1. 中文文本分词

目前中文文本分词主要分为基于词典的分词方法、基于统计的分词方法和基于规则的分词方法。、

基于词典的分词方法主要用词典匹配等进行分词操作,常见的有最大匹配法、最小分词方法等;

基于统计的分词方法是利用词与词之间共同出现的概率统计信息实现分词,一般是基于大量的历史语料库经过分词之后建立语言模型来实现,但是这类方法强依赖于语料库。

基于规则的分词方法属于基于知识理解的方法,目前常根据现有文本数据进行规则学习,然后依据所学的规则实现分词。

基于词典的中文分词方法的本质属于机械分词,通过匹配词典中的词语实现分词。最为经典的有最大正向匹配法(Maximum Matching Method,MM)和逆向最大匹配法(Reverse Maximum Matching Method,RMM)。

前者是正向扫描,后者是反向扫描。

正向最大匹配法MM的处理过程如下:设置最大词长为maxLen,从左向右匹配待分词语句的前maxLen个字,如果与字典中的词匹配成功,则将前maxLen个字作为一个词切分出来。如果词典匹配失败,表示这maxLen个字并不是一个独立的词,则取前maxLen-1个字,即去掉最后一个字,重新进行词典匹配,直到匹配成功。

统计发现,中文语言中逆序词之间的歧义词较正向的要少,所以反向最大匹配法较正向最大匹配法在准确性方面有一定提升。

中文分词系统

  • SCWS简单中文分词系统
  • IK Analyzer是一个开源的轻量级中文分词工具
  • ICTCLAS中文词法分词系统
  • 结巴分词系统
  • 斯坦福分词
  • 斯坦福分词
  • 哈工大分词器
  • THULAC

 SCWS简单中文分词系统

SCWS(Simple Chinese Words Segmentation)是开源的典型的机械分词系统,它是以词频词典为基础实现的中文分词系统,采用纯C语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序,目前其支持的中文编码包括UTF-8、GBK等。

IK Analyzer开源轻量级中文分词工具包

IK Analyzer是一个开源的轻量级中文分词工具包,使用了“正向循环最小粒度分割算法”以及多子处理器解析模型,算法运行速度可达每秒60多万字。

ICTCLAS中文词法分词系统

CTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)是中国科学院研发,也是国内最早的开源分词系统之一。

应用了PDAT(Perfect Double Array TRIEtree)大规模知识库管理技术以及层叠隐马尔科夫模型(Cascade Hierarchical Hidden Markov Model,CHHMM),同时使用了不同算法对文本进行词义消歧。

结巴分词系统

基于前缀词典实现词图扫描,实现方式是通过对句中汉字所有可能成词情况构建有向无环图(DAG),然后采用动态规划查找最大概率路径,找出基于词频的最大切分组合。

结巴主要在分词、词性标注方面的易用性较好。

斯坦福分词

斯坦福分词是斯坦福自然语言处理(Stanford CoreNLP)套件中的一个分词包,整个套件是用Java语言实现的,其中分词基于CRF算法。

斯坦福NLP套件中还有词性标注、命名实体标注、句法分析、语义分析等,功能非常强大,外围的辅助程序也较丰富。

HanLP分词

HanLP分词是HanLP工具包中的一个,此外还有词性标注、命名实体提取和句法分析等,也是采用Java语言开发。HanLP功能很完善,架构也比较清晰,支持自定义词典等,原始模型用的训练语料是人民日报,它也支持自定义语料重新训练。

哈工大分词器

哈工大的分词是语言平台(LTP)中一个组件,支持Web调用的接口,网站上也有测试页面,可以免费试用。

如果用于商业应用中,则需要进行付费。LTP工具包中除了中文分词、词性标注、命名实体识别等之外,还包括依存句法分析、语义角色标注等。

THULAC

THULAC是清华大学开发的中文分词系统,语料库较大,在准确性和分词速度上较好,目前已经有Java、Python和C++版本,并且代码开源。

 英文文本分词

英文文本分词与中文文本分词最大的不同在于,英文文本具备天生的分词特性,由于英文单词存在天然空格间隙划分,因此更容易进行分词操作。

英文文本分词基本步骤可以概括为“3S步骤”,即根据空格拆分单词(Split)、去除停用词(Stop word)和提取词干(Stemming)。

根据空格拆分单词与去除停用词操作都非常简单,而提取词干目前有Porter Stemming、Lovins stemmer和Lancaster Stemming三种主流算法,这些算法并不复杂,一般采用规则或者映射表来完成,著名开源全文检索引擎Lucene就包含了以上三种经典的Stemming算法。

命名实体识别

命名实体识别(Named Entities Recognition,NER)的主要任务是识别文本中具有特定意义的实体,属于自然语言处理的基础工作,识别对象一般包括实体类、时间类和数字类3大类,以及人名、地名、机构名、时间、日期、货币和百分比等7小类。

命名实体识别目前主流还是基于统计的提取方式,例如最大熵(Maximum Entropy,ME)、支持向量机(SVM)、隐马尔可夫模型、条件随机场(CRF)等。

词义消歧

词义消歧(Word-Sense Disambiguation,WSD)是区分同一词在不同的上下文语境下的真实语义。

词义消歧一般要用到词典、知识库等消歧语料。根据所使用的资源类型不同,可以将词义消歧方法分为以下三类。

基于词典的词义消歧

基于词典的词义消歧方法主要基于覆盖度实现,即通过计算语义词典中各词与上下文之间合理搭配程度,选择与当前语境最合适的词语。

目前常用的消歧词典有WordNet、HowNet,以及2017年Google发布基于新牛津美语词典(NOAD)进行标记的词义消歧词典。

由于词典中词义的定义通常比较简洁,粒度较粗,造成消歧性能不高。并且,如果词项缺失就会导致问题。

有监督词义消歧

有监督的消歧方法使用已经标记好的语义资料集构建模型,通过建立相似词语的不同特征表示实现去除歧义的目的。

上下文特征可以归纳为三种类型。

(1)词汇特征:借助语言模型等词语共现统计信息来量化词语间的相关关系。

(2)句法特征:词汇之间的句法关系特征,例如主谓关系、动宾关系等。

(3)语义特征:应用语义特征可分析同形多义的原因,并对歧义句式进行分化。

无监督和半监督词义消歧

半监督或无监督方法仅需要少量或不需要人工标注语料,克服了对大规模语料的要求。

虽然无监督方法不需要大量的人工标注数据,但依赖于大规模的未标注语料和语料上的句法分析结果。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值