赞
踩
所谓文本表示既是通过某种形式将文本字符串表示成计算机所能处理的数值向量。那么为什么要进行文本表示,根本原因是计算机不能直接对文本字符串进行处理,因此需要进行数值化或者向量化。不仅传统的机器学习算法需要这个过程,深度学习也需要这个过程,只不过这个过程可能直接包含在了深度学习网络中;同时,良好的文本表示形式也可以极大的提升算法效果。
文本表示一直以来都是自然语言处理研究领域中的一个热点问题,总体来讲主要分为二大类,
该模型的思路主要是,根据文本内容构建一个词-上下文矩阵,每一行代表一个词,每一列代表一个文本或者上下文,那么每行就可以作为一个term的表示。
词 -上下文 矩阵构造
给定一篇文章或者一个语料库,首先将其转换为为 term-document矩阵
矩阵元素值 表示
矩阵中每个元素的value可以是该 term的TF-IDF值,通常此种方法简洁高效,工程中应用也最为广泛。
降维
对于文本数据来说,构造出来的矩阵是高维、稀疏矩阵,因此为便于后续的处理通常会采用降维方法对矩阵进行降维,保留更有意义的内容,常用的方式为SVD(Singular Value Decomposition)。为了更加直观的理解这个算法,通过一个具体的文本数据来感知基于矩阵建模的过程。
首先给定文档内容如下:
doc1 : “NBA2K16 视频 设置 存储 位置 _NBA 视频 设置 存储 位置 解析 攻略 玩游戏”
doc2 : “NBA2K16 ncaa 豪门 大学 选择 推荐 NBA ncaa 大学 选择 游戏网 攻略”
doc3 : “NBA2K16 学好 NBA2K16 大学 名校 选择 攻略 攻略 心得 单机”
term-DocMatrix ^T= [[1, 1, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 2, 1, 2, 0, 0],
[1, 1, 2, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 2],
[0, 2, 0, 0, 1, 1, 1, 0, 1, 1, 0, 2, 0, 0, 0, 0, 0, 0, 1]]
term^T = [ nba , nba2k16 , ncaa , 位置 , 单机 ,名校 , 大学 , 存储 ,
学好 , 心得 , 推荐 , 攻略 , 游戏网 , 玩游戏 , 视频 , 解析 , 设置 , 豪门 , 选择]
如上图所示,term-DocMatrix 是词-文档矩阵,每一列是一个doc,每一行代表每个词在不同doc中的词频。(本示例中采用的是分好词的文本,token之间用space隔开)
采用TF-IDF 模型填充term-docMatrix中每个元素值。
term-docValueMatrix^T = [
[ 0.17322273, 0.1345229 , 0. , 0.45553413, 0. ,
0. , 0. , 0.45553413, 0. , 0. ,
0. , 0.1345229 , 0. , 0.22776707, 0.45553413,
0.22776707, 0.45553413, 0. , 0. ],
[ 0.21172122, 0.16442041, 0.55677592, 0. , 0. ,
0. , 0.42344244, 0. , 0. , 0. ,
0.27838796, 0.16442041, 0.27838796, 0. , 0. ,
0. , 0. , 0.27838796, 0.42344244],
[ 0. , 0.41900794, 0. , 0. , 0.35472106,
0.35472106, 0.26977451, 0. , 0.35472106, 0.35472106,
0. , 0.41900794, 0. , 0. , 0. ,
0. , 0. , 0. , 0.26977451]]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。