文本表示
文本表示,简单的说就是不将文本视为字符串,而视为在数学上处理起来更为方便的向量。而怎么把字符串变为向量,就是文本表示的核心问题。
文本表示的好处是什么?
- 根本原因是计算机不方便直接对文本字符串进行处理,因此需要进行数值化或者向量化。
- 便于机器学习。不仅传统的机器学习算法需要这个过程,深度学习也需要这个过程。
- 良好的文本表示形式可以极大的提升算法效果。
文本表示分为哪几种呢?(基于类型)
- 长文本表示
- 短文本表示(句子)
- 词表示
文本表示分类(基于表示方法)
离散表示
- One-hot表示
- Multi-hot表示
分布式表示
基于矩阵
- 基于降维表示
- 基于聚类表示
基于神经网络
- CBOW
- Skip-gram
- NNLM
- C&W
文本离散表示
词袋模型与TF-IDF
词袋子模型(bag of words)
词袋子模型是一种非常经典的文本表示。顾名思义,它就是将字符串视为一个 “装满字符(词)的袋子” ,袋子里的 词语是随便摆放的。而两个词袋子的相似程度就以它们重合的词及其相关分布进行判断。
举个例子,对于句子:“我们这些傻傻的路痴走啊走,好不容易找到了饭店的西门”。
我们先进行分词,将所有出现的词储存为一个词表。然后依据 “词语是否出现在词表中” 可以将这句话变为这样的向量:
[1,0,1,1,1,0,0,1,…]
词表:[我们,你们,走,西门,的,吃饭,旅游,找到了,…]
其中向量的每个维度唯一对应着词表中的一个词。可见这个向量的大部分位置是0值,这种情况叫作“稀疏”。为了减少存储空间,我们也可以只储存非零值的位置。
词袋子模型的优缺点
优点
- 简单,方便,
- 快速在语料充足的前提下,对于简单的自然语言处理任务效果不错。如文本分类。
缺点
- 其准确率往往比较低。
- 凡是出现在文本中的词一视同仁,不能体现不同词在一句话中的不同的重要性。
- 无法关注词语之间的顺序关系,这是词袋子模型最大的缺点。如“武松打老虎”跟“老虎打武松”在词袋子模型中是认为一样的。
对词袋子模型的改进:TF-IDF
详细参考:https://blog.youkuaiyun.com/Dulpee/article/details/87578688