PAI文本分析实验:常用文本分析组件及案例实战

Posted fous数据实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAI文本分析实验:常用文本分析组件及案例实战相关的知识,希望对你有一定的参考价值。

上一篇介绍了PAI以及机器学习相关的一点知识,没有深入算法原理,只是从使用角度出发熟悉了操作流程,后面随着学习的深入,我也会对算法原理做一个详细的阐述。这次我们还是继续实战,认识机器学习在文本分析领域是如何工作的。先贴出官方的教程:机器学习PAI眼中的《人民的名义》

准备开始

还是在阿里PAI环境下,我们从实验模板:人民的名义分析进入,然后点击去PAI平台创建,这样就在机器学习页面创建好了实验。接下里设置各个组件的参数,我们先看下模型图:

你会发现模板创建的结果和教程的模型图不一样。这里我们要自己添加红色框内的组件,自定义分词、自定义停用词、停用词过滤和词频统计。所有组件直接在左侧拖到工作区即可。接下来对整个实验流程进行说明分析。

实验流程

首先,我们要读取待分析的文本,这部分是PAI公共库的数据,创建好模板会自动导入。数据是九段文本,节选自人民的名义,后面的分析都是基于这部分数据做的。我们可以右键点击查看数据:

Split Word

接下来为了分析,我们需要切分文本内容,也就是通过split_word组件,这是基于AliWS词法分析系统,对指定列文章内容进行分词,分词后以空格作为分隔符。但是我们既然要分析人民的名义,那么必须保证关键人物被正确分词,这个需要我们给split_word组件添加一个词库,这样再遇见我们定义的关键词时就能正确切分了。文件可以在这里下载:name_ split

停用词

接下来还要添加停用词,那什么是停用词呢?停用词就是句子中的干扰词,比如“什么,这,那,了,的,还有一些符号!,?,:”等,只要不影响我们分析的结果,其实都可以过滤,这是一份中文停用词表(1208个).txt,不过这里我们只能传递单个停留词,所以用不了,我们自己写一个常用停留词文件即可,针对本次分析使用stop_words就可以了。接着我们需要创建两张表,都只有一个字段,定义为string类型,把我们的name_split和stop_words文件导入,然后再数据源处选择我们自己的表即可。

词频统计

当设置好了数据源、分词、停用词过滤,就可以做词频统计:在对文章进行分词的基础上,按行保序输出对应文章ID列(docId)对应文章的词,统计指定文章ID列(docId)对应文章内容(docContent)的词频。添加词频统计组件,设置文档ID列,和文档内容列即可。

关键词抽取

关键词抽取是自然语言处理中的重要技术之一,具体是指从文本里面把跟这篇文章意义最相关的一些词抽取出来。本算法基于TextRank,它受到网页之间关系PageRank算法启发,利用局部词汇之间关系(共现窗口)构建网络,计算词的重要性,选取权重大的做为关键词。

可以看上面这张图,比如制定一个规则:相邻3个words之间有关联,那么就把它们连起来,这样整段内容可以形成一个网络图,它的边上与之关联的词越多(词频高)说明这个词就是key word。

文本摘要

所谓自动文摘就是利用计算机自动地从原始文献中提取文摘,文摘是全面准确地反映某一文献中心内容地简单连贯的短文。本算法基于TextRank,通过提取文档中已存在的句子形成摘要。点击查看数据可以看到根据九段内容提炼的摘要。

运行结果

每一步都可以通过右键查看数据,这里我们取两个直观的结果做检验。关键词提取组件可以返回每章关键词语以及权重,通过这个结果可以看到每一章的关键人物有哪些,以及他们的权重排名情况:

下面是词频统计的部分结果,可以看到每一章不同单词出现的次数统计:

结果基本和官网实验结果差不错,有个别差异是因为所选分词和停用词不同造成的。最后一个是语义向量距离,反应段落之间的相关性:

我们把结果按distance由近到远排序,可以看到向量距离最小的A区域语句相关度还是比较高的,理解就是相邻段落故事相关性较大,而距离比较远的差异就会比较大,比如红框中数据。

~ 完 ~

以上是关于PAI文本分析实验:常用文本分析组件及案例实战的主要内容,如果未能解决你的问题,请参考以下文章

R从网页抓取到文本分析全教程:影评的获取与分析

R从网页抓取到文本分析全教程:影评的获取与分析

达观数据NLP技术的应用实践和案例分析

重要朴素贝叶斯分类器详解及中文文本舆情分析(附代码实践)

[阿里云-机器学习PAI快速入门与业务实战 ]课时1-机器学习背景知识以及业务架构介绍

R语言实战应用精讲50篇(二十八)-R语言时空数据分析实战案例-数据处理及可视化