01、案例说明
本期分享案例是:文字分析-情感分析,内容是关于某部电影评论好坏的分析,使用大量的已知数据,通过监督学习的方法,可以对于未知的评论进行判断其为正面还是负面的评价。
对于数据分析,原来都是处理数值型的问题。直到最近才将数据分析的能力延伸到文本分析的领域之内。通过这个案例我们可以了解对于文字,也同样的可以利用一些聪明的方式,做成数值方式的表现而进行文字分析,如下图所示:
02、数据资料
首先我们看到导入的数据,与之前所经历的数值数据是非常不同,基本在Text的属性里面,是非结构性的文字,其内容与长度都有所不同。这个部分RM是作为文本的方式来处理,也请特别注意,如果是使用EXCEL 等其他外部的数据导入,最好还是使用 Import Guru的功能,避免其辨识为其他种类的属性。
03、操作流程
Step1读入数据
导入数据之后,将目标值设定为情绪反应(Set Role),以及第三个算子(NominalToText)再一次确保其数据是文本而不是多项式的种类。
最主要的核心在第四个操作(Process Document)元之内,这是RM一个特殊的算子,其参数包括设定如何将令牌(Token)输出成为文字向量(Vector),打开其中我们可以看到有几个标准的操作。如下图所示:
第一个算子(Tokenize)将文字首先转换为令牌,使用的方式是只要不是文字,就作为一个令牌,所以所有的空白/标点/特殊符号都会去除掉。
第二个算子(Transform Cases)将所有的英文字转为小写的字体,避免因为大小写而变成不同的令牌。
第三个算子(Filter Stopwords)是使用一个在RM中预先建立的字典,将所有没有意义的字词去除掉。
做完这些之后,其输出的形态变成一个超大的矩阵,如下图所示:
其中一共有200个数据,但是属性却达到13418个属性。而其中的数值(小于1的数值)是其对应令牌在这个数据中的TF-IDF 的数值。
在这里我们就完成了最关键的步骤,也就是将文本的资料转换为实数的数值。通过这个方法,我们之前所学习的所有机器学习模型,都可以应用在这个巨大的矩阵之上。
Step2 模型建立
有了这个了解,我们就可以用之前我们熟悉的交叉检验的算子对这个数据进行模型的建立。因为属性的庞大,通常我们会使用的是支持向量机(SVM),但是其原理和之前是完全相同的,包括对于精准度的验证,可以直接打开这个(Cross Validation)算子进行观察。
Step3: 测试数据
这个步骤(Create Document),我们自行在系统之内创建了一个测试的数据,然后通过使用这个模型来判断这个数据它的情绪反应为何种。但是请注意,这个所创建的测试数据它们的种类是文本而不是其他的任何一种数据。
第2个步骤是使用之前相同的文本处理的算子,对数据进行令牌建立和向量输出。但是特别注意,因为这个算子它并不能自行创建令牌,必须使用原来模型所使用的令牌,所以需要将在第一个步骤所产生的文本处理的算子,其wor端口必须直接相连,才能够确保这两个算子所使用的令牌是一致的,如下图所示:
Step4: 模型使用
这个步骤就如我们之前所了解的一样,使用已经建立好的模型,对于未知的数据进行判断,并且将其结果输出。
04、结果说明
对于我们所建立的测试数据,系统的判断如下,对于结果其信心度有0.587。但是考量模型本身的精确度仅有63.5%+/-6.26%,再配合我们的信心程度很难确定的说这个判断是否准确,仅能作为参考。而如果细读文字的本身,事实上对于人脑也是一个较为难以立判好坏的数据,所以无法因此证明系统的无效性,如下图所示:
对于电脑要发展到与人脑有类似的功能,仅仅使用这种简单的文档分析的方式,远远不能达到可接受的程度。事实上,这个已经是需要进入神经网络和自然语言处理的全新领域。但是简单的使用这种操作,仍然可以产生出很有趣的结果。
当然另外一个问题,就是对于中文的处理。这个案例里面使用的全部都是英文,其中的文档处理的(Process Document)算子,必须要重新调整使用我们在之前所提到的Jieba的Python程序码才有办法处理中文。相关的案例,如果有兴趣的话可以与我们联络,可以共同讨论。
关于 Altair RapidMiner
Altair RapidMiner 数据分析与人工智能平台,是数据分析领域中最早实现将自动化数据科学、文本分析、自动特征工程和深度学习等多种功能同时集成的企业级一站式数据科学平台,帮助用户解决从数据清洗、准备、数据科学建模到模型管理和部署的全流程需求,同时支持数据和流数据的实时分析可视化,适用于从学术研究到企业级应用的广泛场景。
欲了解更多信息,欢迎关注公众号:Altair 澳汰尔