开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:文本特征提取 1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15501
文本特征提取 1
内容介绍:
一、文本特征的理论概念
二、文本特征提取的评估函数
三、TFIDF 计算
文本特征提取和向量化体现,在 Part 1 Testing Mining Basic 目录下打开第三个就是文本特征提取和向量化的文件。
一、文本特征的理论概念
文本挖掘的必要过程是先将文本从一个无结构的原始文本转化为结构化的计算机可以识别处理的信息。表示这个结构的是特征项。目前大多数中文文本挖掘系统都采用词作为特征项,作为特征项的词称作特征词。这些特征词作为文档者跟他们中间表示形式,用来实现文档与文档,文档与用户目标之间的相似度计算。
文本表示就是把从文本中抽取出的特征词进行量化来表示文本信息,目前看来将文本数据量化是文本挖掘的关键。数字化的文本才能发挥计算机强大的计算能力。文本量化需要教学方法,一般通过评估函数来解决。
二、文本特征提取的评估函数
通过构造评估函数对特征集合中的每个特征进行评估,并对每个特征打分,这样每个词语都获得一个评估值,又称为权值。决定文本特征提取效果的主要因素是评估函数的质量。常用评估函数包括:
TF-IDF(Turn frequency-Inverse Document Frequency)
互信息(Mutual Information)
期望交差熵(Expected Cross Entropy)
二次信息熵(QEMI)
信息增益方法(information Gain)
计量方法
文本证据权(The Weight of Evidence for Test)
优势率(Odds Ratio)
N-Gram 算法
分布式表示,词向量(word2vec)
三、TFIDF 计算
1.使用 sklean.feature_extraction.text 中的 TfidfVectorizer 类。
Skiearn 在 Phython 中是著名的机械学细胞,是phython 调用的就是 sklearn, 里面会有一个模块 feature_extration。 即在一个特征抽取的文本子模块里面由 Tfidf 进行向量化的类。
首先加载相关包,像 pandas 是 phython 数据科学里的基础知识,然后再由 jieba 中文分词, matplotlib 是画图, seaborn 也是一个画图工具。关键是从sklean.feature_extraction.text 中要导出 TfidfVectorizer 的类,一个是做 Tfid, 一个是做向量化计数的。
用到的数据是京东的商品评论数据,放在图中的 data 目录。 Data 目录下有京东评论数据的文件。扩展名是 csv,是一种标准的交换数据格式,然后用 pandas 把数据文件读进来。基本上大量的科学分析数据都需要用到 pandas 来完成。最后读数据加载,加载到 data 变量里面。
可以用 data 里面的 head 函数来显示信息的前5条记录。观察数据样本示例,里面有一些字段和数据。这只是直观的观察数据。如果真正地去了解数据指量,直接看会比较麻烦,
如果真正地去了解数据指量,直接看会比较麻烦,5.21可以用下面的数据框代表函数来进行观察,一个是描述函数 describers, 然后运行一下,可以看到里面的每一个属性、描述和分析情况,一般是把一些属性,数值型的属性做一些统计分析。做平均值、标准差、最小最大值、基数等等。可以通过 count 这一行的分析结果来观察某一列有没有缺失的数字。比如在表格的数据的第一行当中 user _province 里面的内容是0,那很多都是空。那0就是缺失的数据。
2. data. info 信息函数
该信息函数左边显示的是每一字段,右边显示的数据显示的是数据情况。可以看到 user_province 这个属性字段也是有控制的。可以得到结果 “user_province” 字段存在缺失的情况,但不影响后记分析,不做相关处理。
先对评论数据做几个可视化分析,在 data[‘score’ ].value_counts() 的数据框里面, value_counts 函数非常方便,它可以按照其里面的类型然后进行统计,因为 score 是离散型的,其可以按照离散的值来做一个汇总。下面是 seaborn 绘图工具,其中 countplot 可以做一个技术的绘图, X 轴是 score 。
运行一下可知 score 打分是1-5分,可清晰看出其数据分布情况。从图中可看出评论文本出现好评和差评不均衡情况,其中好评远大于差。