配色: 字号:
第3章 文本基础处理
2022-10-27 | 阅:  转:  |  分享 
  
文本基础处理2022/10/261分词与词性标注目录语料库2命名实体识别3关键词提取4语料库是为某一个或多个应用而专门收集的、有一定结构的、
有代表性的、可以被计算机程序检索的、具有一定规模的语料集合。语料库概述语料库的实质是经过科学取样和加工的大规模电子文本库。语料库具
备以下3个显著的特征。语料库中存放的是真实出现过的语言材料。语料库是以计算机为载体,承载语言知识的基础资源。语料库是对真实语料进行
加工、分析和处理的资源。语料库不仅仅是原始语料的集合,而且是有结构的并且标注了语法、语义、语音、语用等语言信息的语料集合。任何一个
信息处理系统都离不开数据和知识库的支持,这点对于使用NLP技术的系统自然也不例外。在NLP的实际项目中,通常要使用大量的语言数据或
者语料。语料作为最基本的资源,尽管在不同的NLP系统中所起到的作用不同,但是却在不同层面上共同构成了各种NLP方法赖以实现的基础。
语料库概述1. 语料库简介语料库的产生起始于语言研究,后来随着语料库功能的增强,它的用途变得越来越广,以下将从4个方面阐述语料库的
几大用途。(1)用于语言研究语料库为语言学的研究提供了丰富真实的语言材料,在句法分析、词法分析、语言理论及语言史研究中都起到了强大
的作用。如今,人们对语料库内的语料进行了更深层次的加工处理,为语义学、语用学研究、会话分析、言语变体、语音科学及心理学研究等方面提
供了大量支持。语料库概述2. 语料库的用途(2)用于编纂工具参考书籍一些对语言教学有重要影响的词典和语法书均是在语料库的基础上编写
的。例如,《朗曼当代英语词典》第3版的编写利用了3个大型的语料库,分别是上亿词的BNC语料库、3000万词的朗曼兰开斯特语枓库和朗
曼学习者语料库。该词典中最常用词及频率、成语、搭配和例句等都是根据这三大语料库统计出来的。(3)用于语言教学在语言教学中,语料库可
以帮助减少课堂上学习的语言与实际使用的语言之间的差距,发现过去被忽略的语言规律,能够更准确地理解一些词语在实际交际中的意义和用法,
发现学习者使用语言时的一些问题。此外,语料库还可以用于语言测试、分析语言错误等用途。语料库概述(4)用于NLP语料库按照一定的要求
加工处理后可以应用到NLP的各个层面的研究中。语料库在词层面上进行分词、词性标注后,可以用于词法分析、拼写检查、全文检索、词频统计
、名词短语的辩识和逐词机器翻译等。语料库在句层面上进行句法标注、语义标注后,可以用于语法检查、词义排歧、名词短语辩识的改进、机器翻
译等。语料库在语篇层面上进行语用层的处理后,可以用于解决指代问题、时态分析、目的识别、文本摘要和文本生成等。语料库概述语料库包含的
语言词汇、语法结构、语义和语用信息为语言学研究和NLP研究提供了大量的资料来源。语料库即是时代的产物,也是科技进步的成果,让处于大
数据时代的人们得以拥有和享受语料库带来的便利。语料库的产生,既丰富了语言研究中词汇的数量、语法的形态及语句的结构,又让学习和研究语
言的方式产生了巨大的变化。各种随时代而兴起的技术也有了更为准确的语言研究基础。语料库概述语料库的类型主要依据它的研究目的和用途进行
划分。根据不同的划分标准,语料库可以分为多种类型。例如,按照语种划分,语料库可以分为单语种语料库和多语种语料库;按照记载媒体不同划
分,语料库可以分为单媒体语料库和多媒体语料库;按照地域区别划分,语料库可以分为国家语料库和国际语料库等。语料库种类与原则将语料库以
语料库结构进行划分可分为平衡结构语料库与自然随机结构语料库,以语料库用途进行划分可分为通用语料库与专用语料库,以语料选取时间进行划
分可分为共时语料库与历时语料库。(1) 平衡结构语料库与自然随机结构语料库平衡结构语料库的着重点是语料的代表性和平衡性,需要预先设
计语料库中语料的类型,定义好每种类型语料所占的比例并按这种比例去采集组成语料库。例如,历史上第一个机读语料库布朗语料库就是一个平衡
语料库的典型代表,它的语料按三层分类,严格设计了每一类语料所占的比例。自然随机结构的语料库则是按照某个原则随机去收集组成语料,如《
圣经》语料库、狄更斯著作语料库、英国著名作家作品库、北京大学开发的《人民日报》语料库等。语料库种类与原则1. 语料库种类(2) 通
用语料库与专用语料库所谓的通用语料库与专用语料库是从不同的用途角度上看问题得来的结果。通用语料库不做特殊限定,而专用语料库的选材可
以只限于某一领域,为了某种专门的目的而采集。只采集某一特定领域、特定地区、特定时间、特定类型的语料所构成的语料库即为专用语料库,如
新闻语料库、科技语料库、中小学语料库、北京口语语料库等。通用领域与专用领域只是一个相对的概念。语料库种类与原则(3) 共时语料库与
历时语料库共时语料库是为了对语言进行共时研究而建立的语料库,即无论所采集语料的时间段有多长,只要研究的是一个时间平面上的元素或元素
的关系,则是共时研究。共时研究所建立的语料库就是共时语料库,如中文地区汉语共时语料库(Linguistic Variation i
n Chinese Speech Communities,LiVac),采用共时性视窗模式,剖析来自中文地区有代表性的定量中文媒体
语料,是一个典型的共时语料库。所谓的历时语料库是为了对语言进行历时研究而建立的语料库,即研究一个历时切面中元素与元素关系的演化。例
如,原国家语委建设的国家现代汉语语料库,收录的是1919年至今的现代汉语的代表性语料,是一个典型的历时语料库。根据历时语料库得到的
统计结果是依据时间轴的等距离抽样得到的若干频次变化形成的走势图。语料库种类与原则从事语言研究和机器翻译研究的学者逐渐认识到了语料库
重要性,国内外很多研究机构都致力于各种语料库的建设。各种语料库的研究正朝着不断扩大库容量、深化加工和不断拓展新的领域等方向继续发展
。建设或研究语料库的时候,一般需要保证语料库具有以下4个特性。(1)代表性在一定的抽样框架范围内采集的样本语料尽可能多地反映无限的
真实语言现象和特征。(2)结构性收集的语料必须是计算机可读的电子文本形式的语料集合。语料集合结构包括语料库中语料记录的代码、元数据
项、数据类型、数据宽度、取值范围、完整性约束。语料库种类与原则2. 语料库的构建原则(3)平衡性平衡性是指语料库中的语料要考虑不同
内容或指标的平衡性,如学科、年代、文体、地域、使用者的年龄、性别、文化背景、阅历、语料的用途(公函、私信、广告)等指标。一般建立语
料库时,需要根据实际情况选取其中的一个或者几个重要的指标作为平衡因子。(4)规模性大规模的语料库对于语言研究特别是对NLP研究具有
不可替代的作用,但随着语料库的增大,垃圾语料带来的统计垃圾问题也越来越严重。而且当语料库达到一定的规模后,语料库的功能不能随之增长
。因此在使用时,应根据实际的需要决定语料库的规模。语料库种类与原则NLTK(Natural Language Toolkit)是一
个用于构建处理自然语言数据的Python应用开源平台,也是基于Python编程语言实现的NLP库。NLTK提供了超过50个素材库和
词库资源的接口,涵盖了分词、词性标注、命名实体识别、句法分析等各项NLP领域的功能。NLTK支持NLP和教学研究,它收集的大量公开
数据集和文本处理库,可用于文本分类、符号化、提取词根、贴标签、解析及语义推理等。NLTK也是当前最为流行的自然语言编程与开发工具,
在进行NLP研究和应用时,利用NLTK中提供的函数可以大幅度地提高效率。NLTK库1. NLTK简介NLTK的部分模块及功能描述如
表所示。NLTK库本书1.3小节已经介绍了Python开发环境的安装和环境变量的配置,以及如何在Anaconda Prompt里创
建一个名为NLP的虚拟环境,在本节不再重复介绍。在成功安装Python开发环境和创建NLP虚拟环境的条件下,NLTK的安装步骤如下
。进入NLP虚拟环境。在Anaconda Prompt命令行激活NLP虚拟环境。安装NLTK库。在Anaconda Prompt的
NLP虚拟环境里安装NLTK库。检查是否存在NLTK库。下载NLTK数据包。在成功安装NLTK库后,打开Spyder,新建一个新文
件,编写代码,下载NLTK数据包。NLTK库2. 安装步骤下载NLTK数据包时,会显示可供下载的NLTK数据包的对话框,如图所示。
NLTK库由图可看出,首先选择需要下载的包,如all、all-corpora、all-nltk、book、popular、test
s、third-partty中的book,然后在“Download Directory”修改下载路径。下载路径可选择为Anacon
da 3的安装位置,将NLTK数据包放置于Anaconda 3的下级目录,如“C:\Anaconda3 \nltk_data”(注
意需要先在“C:\Anaconda3”目录下新建一个名为“nltk_data”的文件夹)。然后单击“Download”按钮(下载需
要一些时间,需耐心等待)。下载完数据包以后,还需要进行环境变量的配置,具体步骤为:右键单击计算机图标,在弹出的右键菜单中依次单击“
属性”→“高级系统设置”→“高级”→“环境变量”,在“系统变量”里双击“Path”,在输入框中输入下载路径“C:\Anaconda
3\nltk_data”。最后检查NLTK数据包是否安装成功,在成功安装NLTK数据包之后,界面会显示NLTK当中Book数据包的
示例文本。NLTK库除了自行构建语料库之外,还有许多已经构建的好的语料库可以直接获取使用。NLTK中就集成了多个文本语料库,除此之
外还有许多网络的在线语料库被共享出来以供人们使用。NLTK中有多个文本语料库,其中包含古腾堡项目(数字图书馆)电子文本档案的一小部
分文本、网络和聊天文本、即时消息聊天会话、路透社语料、就职演说语料、标注文本语料、其他语言语料等。NLTK中定义了许多基本语料库函
数,如表所示。语料库的获取NLTK中定义了许多基本语料库函数,如表所示。语料库的获取NLTK中定义了许多基本语料库函数,如表所示。
语料库的获取NLTK包含网络文本、获取网络文本需要先加载NLTK,然后调用fileids函数获取文本。对于文本可进行以下3个操作。
(1)查找某个文件,统计词数。(2)索引文本。(3)获取文本的标识符、词、句。语料库的获取本节演练如何构建作品集语料库,并在构建完
之后对该语料库进行简单的分析。下载目前比较火的影视作品集构建作品集料库,完成数据采集和预处理工作,获取保存的文件的列表。构建完成语
料库之后,可以利用NLTK基本函数进行搜索相似词语、指定内容、搭配词语、查询文本词汇频数分布等相应操作。语料库的构建与应用1. 构
建作品集语料库通过下载的《琅琊榜》语料构建古装影视语料库,具体实现步骤如下。(1)读取本地语料。(2) 查询词频。(3) 查看《琅
琊榜》部分文本。(4) 统计高频词次数。(5) 查询词频在指定区间内的词数量。语料库的构建与应用2. 古装影视语料库分析(6) 使
用jieba进行分词。NLTK虽自带了很多统计的功能,但是部分函数只能处理英文语料,对中文语料并不通用。为了使用这些NLTK中的函
数,需要对中文进行预处理。首先对中文进行分词,然后将分词的文本封装成NLTK的“text”对象,最后再使用NLTK中的函数进行处理
。分词的目的是为NLTK的“text”对象提供封装的语料,这里使用jieba包的lcut函数进行分词(jieba的使用将在第4章介
绍)。(7) 查看指定单词上下文。(8) 搜索相似词语。(9) 绘制词汇离散图。语料库的构建与应用1分词与词性标注目录语料库2命名
实体识别3关键词提取4中文分词是指将汉字序列按照一定规范、逐个切分为词序列的过程。在英文中,单词之间以空格为自然分隔符,分词自然地
以空格为单位切分,而中文分词则需要依靠一定技术和方法寻找类似英文中空格作用的分隔符。基于规则的分词是中文分词最先使用的方法,常见的
方法有正向最大匹配法、逆向最大匹配法等。随着统计方法的发展,又提出了一些基于统计的分词模型,常见的分词模型有n元语法模型、隐马尔可
夫模型和条件随机场模型。中文分词简介基于规则或词典的分词方法是一种较为机械的分词方法,其基本思想是将待分词语句中的字符串和词典逐个
匹配,找到匹配的字符串则切分,不匹配则减去边缘的某些字符,从头再次匹配,直至匹配完毕或者没有找到词典的字符串而结束。基于规则分词主
要有正向最大匹配法(Maximum Match Method,MM法)、逆向最大匹配法(Reverse Maximum Match
Method,RMM法)和双向最大匹配法(Bi-direction Matching Method,BMM法)这3种方法。基于规
则的分词假设有一个待分词中文文本和一个分词词典,词典中最长的字符串长度为 。从左至右切分待分词文本的前 个字符,然后查找是否有和词
典一致的字符串。若匹配失败,则删去该字符串的最后一个字符,仅留下前 个字符,继续匹配这个字符串,以此类推。如果匹配成功,那么被切分
下来的第二个文本成为新的待分词文本,重复以上操作直至匹配完毕。如果一个字符串全部匹配失败,那么逐次删去第一个字符,重复上述操作。基
于规则的分词1. 正向最大匹配法例如,假设待分词文本为“西藏生态屏障建设”,词典为“{"西藏", "西藏生态", "生态屏障","
建设"}”。由词典得到最长字符串的长度为4,具体分词步骤如下。(1)切分待分词文本“电影全产业链体系”前4个字符,得到“西藏生态”
,在词典中找到与之匹配的字符串,匹配成功。此时,将文本划分为“西藏生态”,“屏障建设”。(2)将分词后的第二个文本“屏障建设”作为
待分词文本。此时词典中找不到与之匹配的字符串,匹配不成功。(3)删去“屏障建设”的最后一个字符,匹配失败,删去最后两个字符,得到“
屏障”,匹配成功,此时,将文本划分为“西藏生态”,“屏障”,“建设”。(4)将分词后的第三个文本“建设”作为待分词文本。此时词典中
找到与之匹配的字符串,匹配成功。综上所述,用正向最大匹配法分词,得到的结果是“西藏生态”,“屏障”,“建设”。基于规则的分词RMM
与MM法原理相反。从右至左匹配待分词文本的后 个字符串,查找是否有和词典一致的字符串。若匹配失败,仅留下待分词文本的后 个词,继续
匹配这个字符串,以此类推。如果匹配成功,则被切分下来的第一个文本序列成为新的待分词文本,重复以上操作直至匹配完毕。如果一个词序列全
部匹配失败,则逐次删去最后一个字符,重复上述操作。基于规则的分词2. 逆向最大匹配法同样以待分词文本“西藏生态屏障建设”为例说明逆
向最大匹配法,具体分词步骤如下。(1)切分待分词文本“西藏生态屏障建设”后4个字符,得到“屏障建设”,在词典中找不到与之匹配的字符
串,匹配不成功。(2)删去“屏障建设”的第一个字符得到“障建设”,匹配失败,删去“障建设”的第一个字符得到“建设”,匹配成功,将文
本划分为“西藏生态屏障”和“建设”。(3)将分词后的第一个文本“西藏生态屏障”作为待分词文本,与词典匹配不成功,一次删去第一个字符
,直到得到“生态屏障”,匹配成功,将文本划分为“西藏”,“生态屏障”和“建设”。(4)将分词后的第一个文本“西藏”作为待分词文本,
与词典匹配成功。综上所述,用逆向最大匹配法分词,得到的结果是“西藏”“生态屏障”“建设”。基于规则的分词双向最大匹配法基本思想是将
MM法和RMM法的结果进行对比,选取两种方法中切分次数较少的作为切分结果。用正向最大匹配法和逆向最大匹配法对“西藏生态屏障建设”进
行分词,结果分别为“西藏生态”“屏障”“建设”和“西藏”“生态屏障”“建设”。选取切分次数最少的结果为“西藏生态”“屏障”“建设”
。研究表明,利用正向最大匹配法和逆向最大匹配法匹配,中文分词大约90%的词句完全重合且正确,有9%左右的句子得到的结果不一样,但其
中有一个是正确的。剩下不到1%的句子使用两种方法进行切分都是错误的。因而,双向最大匹配法在中文分词领域中得以广泛运用。基于规则的分
词3. 双向最大匹配法基于规则的中文分词常常会遇到歧义问题和未登录词问题。中文歧义问题主要包括交集型切分歧义和组合型切分歧义两大类
。交集型切分歧义是指一个字串中间的某个字或词,不管切分到哪一边都能独立成词,如“打折扣”一词,“打折”和“折扣”可以是两个独立的词
语。组合型切分歧义是指一个字串中每个字单独切开或者不切开都能成词,如“将来”一词,可以单独成词,也可以切分为单个字。未登录词也称为
生词,即词典中没有出现的词。未登录词可以分为四大类,第一类是日常生活出现的普通新词汇,尤其是网络热门词语,这类词语更新换代快,且不
一定符合现代汉语的语法规定;第二类是专有名词,主要指人名、地名和组织机构名,它还包括时间和数字表达等;第三类是研究领域的专业名词,
如化学试剂的名称等;第四类是其他专用名词,如近期新上映的电影、新出版的文学作品等。遇到未登录词时,分词技术往往束手无策。基于统计的
分词基于统计的分词方法有效解决了中文分词遇到歧义问题和未登录词问题。基于统计的分词方法的基本思想是中文语句中相连的字出现的次数越多
,作为词单独使用的次数也越多,语句拆分的可靠性越高,分词的准确率越高。基于统计的分词方法通常需要两个步骤:建立统计语言模型;运用模
型划分语句,计算被划分语句的概率,选取最大概率的划分方式进行分词。常见的基于统计的分词方法包括n元语法模型和隐马尔可夫模型。基于统
计的分词(1)概念n元语法指文本中连续出现的n个语词。n元语法模型是基于(n-1)阶马尔可夫链的一种概率语言模型,通过n个语词出现
的概率来推断语句的结构。这一模型被广泛应用于概率论、通信理论、计算语言学(如基于统计的自然语言处理)、计算生物学(如序列分析)、数
据压缩等领域。n-gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为n的滑动窗口操作,形成了长
度是的字节片段序列。每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gra
m列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。基于统计的分词1. n元语法模型(2)类型当n分
别为1、2、3时,又分别称为一元语法(unigram)、二元语法(bigram)与三元语法(trigram)。一元模型(unigr
am model):把句子分成一个一个的汉字。二元模型(bigram model):把句子从头到尾每两个字组成一个词语。三元语法模
型(Trigram model):把句子从头到尾每三个字组成一个词语。基于统计的分词(3)中文分词与n元语法模型假设语句序列为 =
{小孩,喜欢,在家,观看,动画片},估计这一语句的概率。以二元语法模型为例,需要检索语料库中每一个词以及和相邻词同时出现的概率。假
设语料库中总词数7542,单词出现的次数如图所示。基于统计的分词语句s在当前语料库中出现的概率的计算过程如式所示。因此,语句s在当
前语料库下出现的概率约为0.2122347基于统计的分词隐马尔可夫模型(Hidden Markov Model,HMM)是一种概率
模型,用于解决序列预测问题,可以对序列数据中的上下文信息进行建模。HMM用于描述含有隐含未知参数的马尔可夫过程。在HMM中,有两种
类型的节点,分别为观测序列与状态序列。状态序列是不可见的,它们的值是需要通过从观测序列进行推断而得到的。很多现实应用可以抽象为此类
问题,如语音识别、NLP中的分词、词性标注、计算机视觉中的动作识别等。HMM在这些问题中得到了成功的应用。基于统计的分词2. 隐马
尔可夫模型(1) 马尔可夫模型马尔可夫过程(Markov process)是一类随机过程。它的原始模型马尔可夫链,由俄国数学家A.
A.马尔可夫于1907年提出。该过程具有如下特性:在已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它以往的演变 (过去
)。例如森林中动物头数的变化构成——马尔可夫过程。在现实世界中,有很多过程都是马尔可夫过程,如液体中微粒所作的布朗运动、传染病受
感染的人数、车站的候车人数等,都可视为马尔可夫过程。每个状态的转移只依赖于之前的n个状态,这个过程被称为1个n阶的模型,其中n是影
响转移状态的数目。最简单的马尔可夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态,这个也叫作马尔可夫性质。基于统计的
分词(2) 隐马尔可夫模型马尔可夫模型中的状态是可见的,而HMM的状态则是部分可见。HMM描述观测变量和状态变量之间的概率关系。与
马尔可夫模型相比,HMM不仅对状态建模,而且对观测值建模。不同时刻的状态值之间,同一时刻的状态值和观测值之间,都存在概率关系。(3
) 中文分词与HMM中文分词可以看作是中文的标注问题。标注问题是给定观测序列预测其对应的标记序列。假设标注问题的数据是由HMM生成
的,利用HMM的学习与预测算法进行标注。下面以中文分词问题为例,介绍HMM如何用于中文标注。基于统计的分词对于句子“我是一位程序员
”,在这里观测序列 为“我是一位程序员”,每个字为每个时刻的观测值。状态序列为标注的结果,每个时刻的状态值有4种情况{B,M,
E,S},其中B代表该字是起始位置的字,M代表中间位置的字,E代表末尾位置的字,S代表能够单独成字的字。对待分词语句进行序列标注,
如果得到状态序列 为{S S B E B M E },则有“我/S 是/S 一/B 位/E 程/B 序/M 员/E”。得到了
这个标注结果后,即可得到分词结果。遇到S,则为一个单字词,遇到B,则为一个词的开始,直到遇到下一个E,则为一个词的结尾。这样句子“
我是一位程序员”的分词结果为“我/是/一位/程序员”。(4) 维特比算法维特比算法(Viterbi algorithm)是机器学习
中应用非常广泛的动态规划算法,在求解HMM模型预测问题中用到该算法。实际上,维特比算法不仅是很多NLP的解码算法,也是现代数字通信
中使用最频繁的算法。中文分词问题可以利用维特比算法求解,得到标注的状态序列值。基于统计的分词jieba分词支持精确模式、全模式和搜
索引三种模式。(1)精确模式采用最精确的方式将语句切开,适用于文本分析。(2)全模式可以快速地扫描语句中所有可以成词的部分,但无法
解决歧义问题。(3)搜索引模式在精确模式的基础上再切分长词,适用于搜索引擎的分词。通过对一句话采用三种模型进行分词,举例介绍jie
ba的分词模式。首先进入NLP虚拟环境,输入“conda install jieba”或“pip install jieba”安装
jieba,安装成功后检查安装列表中是否出现jieba,如果有表示安装成功。中文分词工具jieba库全模式和搜索引擎模式会打印所有
可能的分词结果,精确模式仅输出一种分词,除了一些适合全模式和搜索引擎模式的场合,一般情况下会较多地使用精确模式。这3种模式的分词主
要用jieba.cut函数和jieba.cut_for_search函数,jieba.cut函数可输入3个参数。待分词字符串、cu
t_all参数选择是否采用全模式(默认为精确模式)、HMM参数控制是否使用HMM模型。而jieba.cut_for_search函
数可输入两个参数。待分词字符串、是否使用HMM模型。中文分词工具jieba库中文词性标注相比与英文词性标注有一定的难度,这是因为中
文不像英文可以通过词的形态变化判断词的词性。此外,一个中文词可能有多种词性,在不同的句子中表现的意思也大不相同。例如,“学习能使我
进步”这句话,“学习”是名词,而“我要好好学习”这句话,“学习”是动词。词性标注主要有基于规则和基于统计的标注方法。基于规则的标注
方法是较早的一种词性标注方法,这种方法需要获取能表达一定的上下文关系及其相关语境的规则库。一个好的规则库的获取是比较困难的,主要的
获取方式是通过人工编制繁杂的语法或语义信息的词典和规则系统,比较费时费力,并且难以保证规则的准确性。词性标注简介20世纪70年代末
到80年代初,基于统计的词性标注开始得到应用。具有代表性的是基于统计模型(n元语法模型和马尔可夫转移矩阵)的词性标注系统,通过概率
统计的方法进行自动词性标注。基于统计的方法主要有基于最大熵的词性标注、基于统计最大概率输出的词性标注和基于隐马尔科夫模型(HMM)
的词性标注。基于规则的标注和基于统计的标注方法在使用的过程中,各有所长,但都存在一些缺陷。因此,就有了将基于规则与统计相结合的词性
标注方法,此方法具有效率更高,处理能力强等特点。词性标注简介现代汉语中的词性可分为实词和虚词,共有12种词性。实词有名词、动词、形
容词、代词、数词、量词;虚词有副词、介词、连词、助词、拟声词、叹词。名词是表示人和事物的名称的实词,动词表示人或事物的动作、行为、
发展、变化,形容词表示事物的形状、性质、状态等。中文词性通常会通过一些简单字母编码对词性进行标注,如动词、名词、形容词分别用“v”
“n”“adj”表示。事实上,中文的词性标注至今还没有统一的标注标准,使用较为广泛有宾州树库和北大词性标注规范。词性标注规范本书采
用北大词性标注规范,如表所示。词性标注规范本书采用北大词性标注规范,如表所示。词性标注规范本书采用北大词性标注规范,如表所示。词性
标注规范本书采用北大词性标注规范,如表所示。表中展示了部分词性标注的编码及其注解,通过这个标准可以对一些句子段落进行词性标注。词性
标注规范jieba词性标注是基于规则与统计相结合的词性标注方法。jieba词性标注与其分词的过程类似,利用词典匹配与HMM共同合作
完成词性标注。其词性标注流程可概括为以下两个步骤。(1)如果是汉字,那么将基于前缀词典构建有向无环图,对有向无环图计算最大概率路径
,同时在前缀字典中查找所分词的词性。如果没有找到,那么将其标注为“x”(表示词性未知);如果在标注过程中标志为未知,并且该词为未登
陆词,那么通过HMM进行词性标注。(2)如果不是汉字,那么使用正则表达式判断词的类型,并赋予对应的词性,其中“x”表示未知词性,“
m”表示数词,“eng”表示英文词。jieba词性标注jieba词性标注的流程如图所示。jieba词性标注以“去森林公园爬山”为例
,给出jieba词性标注的流程如下。加载离线统计词典。构建前缀词典。构建有向无环图。计算最大概率路径。jieba词性标注(1) 加
载离线统计词典离线统计词典放在chapte\data文件夹下。词典的每一行有3列,第一列是词,第二列是词频,第三列是词性,如表所示
。jieba词性标注(2) 构建前缀词典通过离线统计词典构建前缀词典。如统计词典中的词“森林公园”的前缀分别是“森”“森林”“森林
公”;“公园”的前缀是“公”;“爬山”的前缀是“爬”。统计词典中所有的词形成的前缀词典如表所示。jieba词性标注统计词典中所有的
词形成的前缀词典如表所示。jieba词性标注(3) 构建有向无环图首先基于前缀词典对输入文本“去森林公园爬山”进行切分。对于“去”
,没有前缀,没有其他匹配词,划分为单个词;对于“森”,则有“森”“森林”和“森林公园”3种方式;对于“林”,也只有一种划分方式;对
于“公”,则有“公”“公园”两种划分方式,依次类推,可以得到每个字开始的前缀词的切分方式。jieba词性标注然后,构建字的映射列表
。在jieba分词中,每个字都是通过在文本中的位置标记,因此可以构建一个以每个字开始位置与相应切分的末尾位置构成的映射列表,如表所
示。jieba词性标注最后,根据上表所构建的有向无环图。对于每一种切分,将相应的首尾位置相连。例如,对于位置1,映射为1:[1,2
,4],将位置1与位置1、位置2、位置4相连接,最终构成一个有向无环图,如图所示。jieba词性标注(4) 计算最大概率路径。得到
有向无环图后,每条有向边的权重(用概率值表示)可以通过前缀词典的词频获得。上图中从起点到终点存在多条路径,每一条路径代表一种分词结
果。例如“去/森/林/公/园/爬/山”“去/森林/公园/爬山”“去/森林公园/爬山”。在所有的路径中,需要计算一条概率最大的路径,
也就是在所有切分结果中选取概率最大的一种切分。jieba利用动态规划法计算概率最大路径,通过从句子的最后一个字开始倒序遍历句子的每
个字的方式,计算不同分词结果的概率对数得分。得到概率最大路径后,就可获得分词的结果,同时在前缀字典中查找所分词的词性,得到分词后的
词性标注。其中,jieba词性标注在实际应用中使用psg.cut函数命令实现,不需要另外编写命令。jieba词性标注1分词与词性标
注目录语料库2命名实体识别3关键词提取4命名实体可分为实体类、时间类和数字类3大类,以及人名、机构名、地名、时间、日期、货币和百分
比7小类。命名实体识别在NLP中占有重要地位,它是信息提取、机器翻译和问答系统等应用领域里的基础工具。命名实体识别的任务就是识别出
文本中的命名实体,通常分为实体边界识别和实体类别识别两个过程。中文文本中没有类似英文文本中空格之类的显式标示词的边界标示符,也没有
英文中较为明显的首字母大写标志的词,这使得中文的实体的边界识别变得更加有挑战性。命名实体识简介中文实体识别的挑战性主要表现在以下3
个方面。(1)中文词灵活多变有些词语在不同语境下可能是不同的实体类型,如中国辽宁有个省市叫“沈阳”,中国也有一些人名叫“沈阳”,同
一个词“沈阳”在不同语境下可以是地名或人名。有些词语在脱离上下文语境的情况下无法判断是否为命名实体,特别是一些带有特殊意义的名称如
“柠檬”,但“柠檬”在某些情况下会被认为是一个现代流行的形容词。(2)中文词的嵌套情况复杂一些中文的命名实体中常常嵌套另外一个命名
实体。如“北京大学附属中学”这一组织机构名中还嵌套着同样可以作为组织机构名的“北京大学”,地名“北京”。命名实体的互相嵌套情况,对
命名实体识别造成一定的困难。命名实体识简介(3)中文词存在简化表达现象通常对一些较长的命名实体词进行简化表达,如“北京大学”通常简
化为“北大”,“北京大学附属中学”通常简化为“北大附中”,无疑对命名实体的识别造成一定负担。命名实体识别实际上是序列标注问题。命名
实体识别领域常用的3种标注符号B、I、O分别代表实体开始、实体中间、其他。在字一级的识别任务中,对于人名、地名、机构名的3种命名实
体PER、LOC、ORG,定义7种标注的集合L={B-PER,I-PER,B-LOC,I-LOC,B-ORG,I-ORG,O},分
别代表的是人名、地名、机构名对应的首部、内部和其他。如“尼克松是出身于加利福尼亚的政治家”,标注序列为{ B-PER, I-PER
, I-PER, O, O, O, B-LOC, I-LOC, I-LOC I-LOC, I-LOC, O, O, O, O }。
命名实体识简介假设 为待标注的字观测序列,
为待标注的状态集合。命名实体识别问题可描述为求概率 最大的状态序列
,其中 ,如式所示。早期的命名实体识别主要是基于规则的方法,后来基于大规模语料库的统计
方法逐渐成为主流。HMM、最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)以及条件随机场(
Conditional Random Field,CRF)是命名实体识别中最常用也是最基本的3个统计模型。首先出现的是HMM,其次
是MEMM,最后是CRF。命名实体识简介CRF模型最早由Lafferty等人于2001年提出,其模型思想主要来源于最大熵模型。CR
F模型是一种基于统计方法的模型,可以被认为是一个无向图模型或一个马尔可夫随机场,它是一种用于标记和切分序列化数据的统计框架模型。相
对于HMM和MEMM,CRF模型没有HMM那样严格的独立性假设,同时克服了MEMM标记偏置的缺点。CRF理论在命名实体词识别、语句
分词、词性标注等语言处理领域有着十分广泛深入的应用。与HMM不同,CRF中当前的状态不是只由这一时刻观测条件给出,而是与整个序列的
整体状态相关,即CRF依赖于自己观测条件下的所有观测数值。CRF在解决英语浅层分析、英文命名实体识别等任务时,取得了良好的效果。C
RF的特性以及研究成果表明,它也能够适用于中文命名实体识别的研究任务。CRF模型使用sklearn-crfsuite库进行中文命名
实体识别,其流程中的步骤包括文本预处理(语料预处理、语料初始化、训练数据),模型训练与预测(模型训练、模型预测)。其中将实现文本预
处理步骤的代码定义为CorpusProcess类,模型训练与预测步骤的代码定义为CRF_NER类。CorpusProcess类主要
实现内容包括语料读取与写入、语料预处理(全角转半角、连接姓名、合并中大粒度分词与时间)、语料初始化(初始化字序列、词性序列、标记序
列)、训练数据(窗口统一切分、特征提取)。命名实体识别流程1分词与词性标注目录语料库2命名实体识别3关键词提取4关键词就是能够反映
文本主题或内容的词语。关键词这个概念是随着信息检索学科的出现而被提出,中文关键词是西方信息检索科学移植到中文的直接成果。关键词提取
是从单个文本或一个语料库中,根据核心词语的统计和语义分析,选择适当的、能够完整表达主题内容的特征项的过程。关键词提取技术的应用非常
广泛,主要应用对象可以分为人类用户和机器用户。在面向读者的应用中,要求所提取的关键词具有很高的可读性、信息性和简约性。关键词提取技
术的主要应用有新闻阅读、广告推荐、历史文化研究、论文索引等领域。在NLP中,关键词作为中间产物,应用也非常广泛,主要应用有文本聚类
、文本分类、机器翻译、语音识别等领域。关键词提取技术简介由于关键词具有非常广泛的用途,因此开发出一套实用的关键词提取系统非常重要。
这就要求关键词提取算法不仅在理论上正确,更要求在工程上具有很好的实践效果。关键词提取系统的实用性主要表现在以下4个方面。(1)可读
性一方面,由于中文的字与字之间是没有空格隔开的,需要分词工具对文本进行切分,而分词工具对于专有名词的切分准确率还很低。另一方面,词
的表达能力也非常有限,如“市场/经济”,任何一个词“市场”或“经济”都无法表达整个短语的含义。因此,系统所提取出的关键词的可读性对
系统的实用性是一个很大的考验。关键词提取技术简介(2)高速性系统应该具有较快的速度,能够及时处理大量的文本。如一个针对各类新闻的关
键词提取系统,当新闻产生后,应该能在数秒内提取出该新闻的关键词,才能保证新闻的实时性。(3)学习性实用的关键词提取系统,应该能处理
非常广泛的领域的文本,而不是仅仅局限于特定领域。随着社会的高速发展,各种未登录词、网络新词频频出现,系统应具有较强的学习能力。(4
)健壮性系统应该具有处理复杂文本的能力,如中、英文混杂,文本、图表、公式混杂的文本。关键词提取技术简介关键词能概括文本的主题,因而帮助读者快速辨别出所选内容是不是感兴趣的内容。常见的关键词提取算法有TF-IDF算法、TextRank算法和主题模型算法,其中主题模型算法主要包括LSA和LDA两种算法,如表所示。关键词提取算法常见的关键词提取算法,如表所示。关键词提取算法本节根据算法原理自定义TF-IDF算法的函数,并通过实例完成关键词自动提取。关键词提取流程主要包括数据预处理、算法实现和结果分析等步骤。文本预处理的步骤如下。(1)加载停用词文件stopword.txt并按行读取文件中的停用词,将文本中多余的换行符进行替换,最终获取停用词列表。其中自定义Stop_words函数用于获取停用词列表。(2)对当前文档过滤停用词。自定义Filter_word函数用于对当前文档进行处理,输入参数为当前文档内容。处理后的文档存放在filter_word变量中,它是一个包含着多个字符串的列表。(3)对文档集corpus.txt过滤停用词。文档集选取国内2012年6—2012年7月期间,搜狐新闻中国际、体育、社会、娱乐等18个频道的新闻内容,其中包含多行文本内容,读取时以列表的形式追加,每个文档以字符串的形式存放在列表当中。自动提取文本关键词(4)自定义Filter_words函数用于对文档集进行处理,输入参数是文档集路径。处理后的文档集存放在document变量中,它是一个包含着多个列表的列表,相当于将多个filter_word变量组合为一个列表。自定义的TF-IDF算法函数名为tf_idf,其算法实现包括以下3个步骤。(1)对TF值进行统计。调用自定义Filter_word函数处理当前文档,统计当前文档中每个词的TF值。(2)对IDF值进行统计。调用自定义Filter_words函数处理文档集,统计IDF值。(3)对TF值和IDF值进行统计,二者结果相乘,得到TF-IDF值。自动提取文本关键词本章首先介绍了语料库的相关知识和NLTK库中的部分函数的使用,构建古装影视作品集语料库,并对语料文本进行分析;然后介绍了分词方法和词性标注,通过jieba库完成高频词提取及jieba库的词性标注方法;接着介绍了命名实体识别,利用条件随机场对命名实体识别;最后介绍了关键词提取技术的3种算法,根据TF-IDF算法通过实例实现关键词提取。小结相关的实训、课程视频等资源:https://edu.tipdm.org相关的培训动态:http://www.tipdm.com/pxdt/index.jhtml
献花(0)
+1
(本文系籽油荃面原创)