文本表示就是将文本转化成数学上的向量表示,怎么把字符串转化为向量,就是文本表示的核心问题。
一、离散表示
1、词袋模型(Bag of Words)
词袋模型就是将字符串看成一个装满词的袋子,词是在袋子里随机放着的。
假设语料库为:
John likes to watch movies. Mary likes too.
John also likes to watch football games.
词典(袋子)就是:{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also":6, "football": 7, "games": 8, "Mary": 9, "too": 10}
John likes to watch movies. Mary likes too. 就可以表示为: [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]。
John also likes to watch football games. 就可以表示为: [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]。
词袋模型的优点:
(1)、简单、方便、快捷。
(2)、在语料充足的条件下,对简单的自然语言处理任务效果不错,例如文本分类。
词袋模型的缺点:
(1)、其准确率往往比较低。凡是出现在文本中的词一视同仁,不能体现不同词在一句话中的不同的重要性。
(2)、无法关注词语之间的顺序,如“武松打老虎”跟“老虎打武松”在词袋子模型中是认为一样的。
2、TF-IDF(Term Frequency - Inverse Document Frequency)
在文本表示中不仅考虑词,还考虑出现词的重要程度,就用到TF-IDF。
每个词的IDF权重计算公式为:
其中为文档总数,
为包含该词的文档总数。那么:
3、One-hot
One-hot