【实验目的】

  1. 熟悉基本的汉语分词方法;

  2. 能综合运用基于规则概率的方法进行词性标注。

  3. 理解课堂讲授的基本方法,适当查阅文献资料,在此基础上实现一个分词与词性标注的系统;

【实验原理】

中文词性标注的难点

汉语是一种缺乏词形态变化的语言,词的类别不能像印欧语那样,直接从词的形态变化上来判别。

常用词兼类现象严重。《现代汉语八百词》收取的常用词中,兼类词所占的比例高达22.5%,而且发现越是常用的词,不同的用法越多。由于兼类使用程度高,兼类现象涉及汉语中大部分词类,因而造成在汉语文本中词类歧义排除的任务量大。

研究者主观原因造成的困难。语言学界在词性划分的目的、标准等问题上还存在分歧。目前还没有一个统的被广泛认可汉语词类划分标准,词类划分的粒度和标记符号都不统一。词类划分标准和标记符号集的差异,以及分词规范的含混性,给中文信息处理带来了极大的困难。

词性标注常见方法

基于规则的词性标注方法

基于规则的词性标注方法是人们提出较早的一种词性标注方法,其基本思想是按兼类词搭配关系和上下文语境建造词类消歧规则。早期的词类标注规则一般由人工构建。

随着标注语料库规模的增大,可利用的资源也变得越来越多,这时候以人工提取规则的方法显然变得不现实,于是乎,人们提出了基于机器学习的规则自动提出方法。

基于统计模型的词性标注方法

统计方法将词性标注看作是一个序列标注问题。其基本思想是:给定带有各自标注的词的序列,我们可以确定下一个词最可能的词性。

现在已经有隐马尔可夫模型(HMM)或条件随机域(CRF)等统计模型了,这些模型可以使用有标记数据的大型语料库进行训练,而有标记的数据则是指其中每一个词都分配了正确的词性标注的文本。

基于统计方法与规则方法相结合的词性标注方法

理性主义方法与经验主义相结合的处理策略一直是自然语言处理领域的专家们不断研究和探索的问题,对于词性标注问题当然也不例外。

这类方法的主要特点在于对统计标注结果的筛选,只对那些被认为可疑的标注结果,才采用规则方法进行歧义消解,而不是对所有情况都既使用统计方法又使用规则方法。

基于深度学习的词性标注方法

可以当作序列标注的任务来做,目前深度学习解决序列标注任务常用方法包括LSTM+CRF、BiLSTM+CRF等。

中文词性标注实现方式

经过查阅相关资料,目前主流的中文词性标注工具主要有:

THULAC(C++、Java、Python):由清华大学推出的一个高效的中文词法分析工具包,性能好(CTB5上分词的F1值可达97.3%),预料全(包括来自多文体的标注文本和人民日报标注文本等,包含已标注的字数约为五千八百万字),但高度封装,不太利于入门学习。

NLTK(Python):一个先进的开源的用来处理自然语言数据的Python程序,配合斯坦福大学的"Stanford Word Segmenter"工具(基于北大在2005b人名日报语料库与宾州中文库)可以实现较好的中文分词。NLTK与其社区提供了一整套自然语言处理的工具包。

Jieba(Python、Java、C++、Node.js、R等):一个小巧的中文分词组件,代码相对短小精炼,适合初学者入门学习。本实验使用jieba3k作为实验工具。

Jieba使用的算法:

  • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图
    (DAG);

  • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;

  • 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法;

【实验操作】

  1. 安装jieba3k库(Python3)

  2. 使用jieba3k的3种模式进行分词:

    • 精确模式,试图将句子最精确地切开,适合文本分析;

    • 全模式,把句子中所有的可以成词的词语都扫描出来;

    • 搜索引擎模式,在精确模式的基础上,对长词再次切分。

  3. 添加自定义词典进行分析

【结果与分析】

实验文本:

"我来到中国科学技术大学学习,今天路过电科楼,在西三餐厅吃晚饭。今天天气不错,我们中将出现国家栋梁。"

实验结果:

file

结果分析:

  1. 全模式使用较简单的正则表达式,将成词的词语都扫描出来,速度非常快,但是不能解决歧义;

  2. 精准模式使用较复杂的正则表达式,将句子最精确地切开,适合文本分析;

    精准模式是基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG),不会出现连字重复出现的情况。

    采用动态规划查找最大概率路径,找出基于词频的最大切分组合,所使用的语料库将影响最后的切分结果。

  3. 对比未使用HMM(隐马尔可夫模型)与使用HMM的精准模式,可以发现,基于汉字成词能力的HMM模型,使用了Viterbi算法,可以实现新词识别能力。(电/科/楼电科楼)

  4. 对比未使用自定义词典与使用自定义词典的精准模式,可以发现,HMM模型下的Viterbi算法并不能很好的识别所有新词,使用自定义词典可以保证更高的准确率。(中国/科学技术/大学中国科学技术大学)

  5. 观察使用自定义词典的精准模式可以发现,生成DAG图、基于词频的最大切分组合、采用了基于汉字成词能力的HMM模型,使用Viterbi算法、使用自定义词典后,依旧至少有组合型歧义不能解决。

小结:当前主流的中文分词系统是基本是基于统计的。但是统计方法具有需要大量的人工标注数据,以及较慢的分词速度的固有缺点。

最后修改日期: 2019年6月17日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。