首页 理论教育 Python中文文本分析:SVD特征抽取方法

Python中文文本分析:SVD特征抽取方法

时间:2023-11-06 理论教育 版权反馈
【摘要】:1.SVD函数采用numpy工具中SVD函数实现文本的特征抽取,该函数描述如下:参数:a:是m×n的矩阵。

Python中文文本分析:SVD特征抽取方法

1.SVD函数

采用numpy工具中SVD函数实现文本的特征抽取,该函数描述如下:

(1)参数:

a:是m×n的矩阵

full_matrices:是布尔型数据,缺省默认为True。当full_matrices=True时,则返回值中U的维度为m×m,VT的维度为n×n。当full_matrices=False时,则返回值中U的维度为m×k,VT的维度为k×n,k=min(M,N)。

compute_uv:是布尔型数据,缺省默认为True。当compute_uv=True时,计算U、S、VT。当compute_uv=True时,只计算S。

(2)返回值:

U:维度为m×m或者m×k的矩阵。

S:奇异值向量,每个向量值按降序排列。

VT:维度为n×n或者k×n的矩阵。(www.xing528.com)

2.基于SVD的文本特征抽取

我们选取了某酒店的5条评论,采用奇异值分解方法进行特征选择的过程如下:

原始5条评论文本数据,经过分词、取掉停用词操作之后的特征总数为47,因此该评论数据的文本-特征矩阵A的维度为6×47。

矩阵A:

通过原始矩阵A可以看出,绝大多特征值都为0,没有实际意义,因此可采用基于奇异值分解的特征抽取方式实现关键特征抽取,达到降维的目的。

经过奇异值分解进行特征抽取,奇异值个数为6,例如:

矩阵U:

通过上述奇异值分解方法进行特征抽取,把原始文本维度降至6,极大地减少了特征个数。当然,还可以指定选择奇异值的个数,以便能够更进一步降低特征维度,由于本例中的文本数量较少,所以直接就取值为6,没有再指定要选择的特征数(可以选择小于6的特征数量)。

矩阵VT维度为47×47,其中选择矩阵中的一行数据(1×47)如下所示:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈