特征工程 文本处理

前言:本文是对特征工程中文本分词进行介绍,并用代码实例进行演示。

特征工程-Featuring Engineering

什么是特征工程?

特征工程 文本处理

简单的理解,特征工程可以看做数据分析中的数据处理和变换,把分析的内容转换成机器学习算法能读懂和工作的形式。针对不同的知识领域和任务,需要的特征不同,因此机器学习算法,还需要和领域内的知识相结合。

文本特征

文本的处理可以看做是自然语言处理的内容,它包括以下几个基础的特征:

(1)自动分词

特征工程 文本处理

英文句子中有空格,很容易分词。

(2)词根提取和词性还原

特征工程 文本处理

(3)词性标注

特征工程 文本处理

美国宾夕法尼亚州树库词性标注规范: 一共列出了36种词性

http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html

(4)句法分析

特征工程 文本处理

下面列出几个自然语言处理的包:

*  NLTK 

特征工程 文本处理

Text Processing API:http://text-processing.com/

它无需安装任何程序,需要联网将文本送入接口,可以返回结果。

支持以下功能:

特征工程 文本处理

基于Curl访问Text Processing API:https://curl.haxx.se/

Curl是一个命令行工具,可以下载Curl来进行自然语言处理。

* 更为复杂的开源 TextBlob :https://github.com/sloria/TextBlob

特征工程 文本处理

   * 中文处理工具 jieba: https://github.com/fxsjy/jieba

特征工程 文本处理

向量空间模型及文本相似度计算

词袋模型BOW和向量空间模型VSM

特征工程 文本处理

举例说明:

特征工程 文本处理

BOW词袋模型只是一批文档的集合,VSM在17个词上构建向量空间,同一空间下的向量为分析文集的相似度建立条件。

停用词:

特征工程 文本处理

N-gram模型:

特征工程 文本处理

之前的VSM模型是建立在单个词上的,也可以建立在N-gram上。

计算文档的相似度:

为什么要计算文档相似度?

在对话和问答系统中,我们问的很多问题和对话其实是会有重复的答案,如果判断两个较为不同的描述是同一个问题,那么就可以直接把答案推过去,避免了重复提问和解答,以及减少找到解答的时间。

当把文档转换为空间向量,时我们可以用向量间的距离和余弦值来计算文本的相似度。

文档间的欧氏距离:

特征工程 文本处理

欧氏距离也就是在n维空间找到一个二维平面,两个点间的直线距离;距离越近,相似度就越大。

文档间的余弦相似度:

特征工程 文本处理

Tf-idf词条权重计算:

TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。

特征工程 文本处理

词条t重复的次数越多,那么它作为分类的特征作用越小,因此需要降低这个词条的权重,idf和tf成反比。

特征工程 文本处理

nd表示文档总数,df(t)表示包含该词条t的文档数,为了防止分母df(t)为0,可以通过数据平滑来避免。

Tf-idf 词条权重计算举例:

Counts 是基于词频的一个特征向量文集,有六行也就是六个文档 nd=6,有三列,空间里的维度为3.

特征工程 文本处理

L2归一化处理后,将向量中的点的范围控制在[0,1],方便计算。

文档向量化的实例

公号回复:”文档向量化“  获取代码

特征工程 文本处理

特征工程 文本处理

特征工程 文本处理

特征工程 文本处理

特征工程 文本处理

特征工程 文本处理

特征工程 文本处理

好文章,我 在看❤

相关文章: