开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):自然语言处理基础技术详细介绍(二)】
课程地址:https://edu.aliyun.com/course/3112108/lesson/19279
自然语言处理基础技术详细介绍(二)
三、关键词提取
自然语言处理是有趣的科学在这句话里面,哪一个词能够体现自然语语言处理的性质?自然语处理是科学,科学这两个字就是这句话的关键词。关键词提取就是我们在处理自然语言的时候,有什么办法找到这个关键词
关键词提取的概念,首先明白什么是关键词,关键词就是文本中一些重要的词。通过这些词可以理解文本里面的中心思想。那关键词的提取有点类似于论文里面的摘要,我们看一下面表里面的例子,原始文本。
裤子的质量好,穿起来很好看,非常满意。它的关键词提取出来为裤子质量好看,满意看。
第二个例子,原始文本是这本书无论是质量还是内容都非常棒。内容全面介绍顺序,循序渐进,图文并茂,可以作为高中生的入门课程。提取出来关键词可能是质量\内容\棒,高中生\,入门课程\这样一些关键词,你会发现单独地把这些关键词拿出来,你大概也能理解前面的文本表达的思想。那我们怎么去评价关键词提取的质量。
关键词提取的质量主要体现在它的准确性、全面性和代表性。关键词的提取要准确的话,可以大幅地提升下信息检索的效率。在对话系统里面提取关键词可以理解用户的意图。
从一个文本里面怎么样去提取关键词,哪些应该抽出来作为关键词,它的主要评价的指标。对于这个词是不是关键词,评价的指标是词的权重,也就是它对这个文本的贡献的权重是怎么样的。
接下来我们讲一下关键词提取的一些实现方法。前面说了关键词提取很重要,很有意义,那怎么样提取关键词,它主要分为两个步骤
第一步是获取文本的候选词,即看哪些词可能成为候选的关键词。
然后第二步是对这个候选词进行打分,打分之后得分比较高的,就把它作为关键词输出出来,这就是关键词提取的方法。
下面这个图就是关键词提取的实现流程。
第一步在获取这个文本的候选词的时候,要先进行分词。这种分词算法在中文的环境下非常的重要,因为中文和英文两种语言存在着非常大的差异。英文本身的最小力度是词语,它通过空格区分,标点符号区分,而中文的最小力度是字。所以在找候选词的时候,前提要进行分词,分词之后,再进一步获取候选词。获取候选词之后,然后我们再去提取候选关键词,那提取的时候对这个词进行打分。
主要有监督的学习和无监督的学习两个大类。在积极学习里面,我们已经了解了有监督的学习跟无监督的学习。
首先来看有监督的关键词提取,有监督的关键词提取呢主要是通过分类的方式进行。
首先我们要构建一个词表,在这个表要丰富要完善。然后我们要判断文档跟词表里面词的每个词的匹配的程度。这种类似打标签的方式来达到关键词提取的效果。
它的优点是精度很高,缺点是需要维护大量的标注数据,人工成本太高。而且这个词表要经常地维护,相对而言无监督的关键词提取它对数据的要求低。他既不需要一张人工来维护的生成得维护的词表,也不需要人工去做语料辅助训练。
当然它有缺点,他的缺点是它无法综合利用各种信息,对候选关键字进行排序,所以它可能效果会比不上有监督的关键词,解决方法。关键词提取的实现方法,我们就讲到这里。
四、命名实体识别
在学习命名实体识别之前,我们先来看看实体是什么。我们先通过一道题来了解,如何将文本自然语言处理是有趣的科学进行缩句。我们把这个语句的精华摘出来,就是自然语言处理是科学。
我们把 有趣的这个去掉了,把它清理完了之后,自然语言处理和科学就是这段文本里面的实体。我们这一小节讨论的就是怎么样在自然语言里面找出这样的实体。
命名实体识别的概念。命名实体识别又叫专名识别,它是去识别文本中具有特定意义的实体,主要包括人名、地名、机构名,还有一些专业名词。简单地讲,就是去识别这种自然文本里面的实体指称的边界和类别。
我们看下面这个例子。
小明将参加阿里巴巴主办的天池大数据竞赛。
这里面的实体小明他是人名;阿里巴巴是一个实体,它是一个机构名,天池大数据竞赛也是一个实体,它是活动的名称。我们看到像小明,就这种姓名可能有很多,像阿里巴巴这种公司的实体的机构名也很多。天池大数据竞赛这种词增加词了,肯定新生的。因为命名实体的数量是不断地增加的,所以不可能在词典里面去穷尽。比如说天池大数据竞赛,你不可能做一个词典,很早就知道这是一个实体,所以就要去找它构成的规律,才能更智能地去识别这些实体。通常我们会把这些词的识别放在词汇形态处理任务中,独立去处理。首先强调一下命名实体识别是信息提取、问答系统、机器翻译,还有面向语义web的源数据标注等领域的非常重要的基础工具,在自然语言处理技术走向实用化的过程中占有非常重要的地位。
一般来说,命名实体识别的任务就是识别出来待处理文本里面的三大类和七小类。三大类指的是实体类,时间类和数字类,七小类指的是人名、机构名、地名、日期、时间,货币,还有百分比。通常我们会用这个叫BLOES四位序列标注法,这分别都是什么意思呢?我们看下面的表格。
BLOES代表的是类型。b代表Begin实体片段的开始,i是实体片段的中间,o是不为任何实体,E 就是End就是实体片段的结束,s就是Single,就是单个字进行命名
实体识别的时候,通常要对每个字进行标注,如果是中文的话,就是单个字,英文就是单词,英文就用空格分割。
比如这个例句,我是一名大学生,我爱中国。我是一名大学生这里面我是都是o,这里都是写的是o。它表示字符不为任何实体,e是s是单个字。
然后主要看这里大学生,他标注的是b i e,也就是一个命名实体的begin,i就是中间,e就是and这种方法是命名实体识别标注的方法。除了这个之外,还有比如b i o,这里b表示开头,i表示的结尾,然后o表示outside就是外部的,还有BLOES四个序列列标注的方法,其实思路上都是大同小异的。