写在前面:
这两天看了下cs224N 和 吴军博士的《数学之美》,算是对 NLP 有了一个初步的认识,这篇文章并不是完全按照助教给的框架来写的,其中也尝试了实际操作,但是过程中出现了很多意想不到的错误,由于还没有解决,所以这里就不粘代码实现的部分了,助教请见谅!
文章目录
一. 概念介绍
1.词袋模型(Bag of Words)
- 词袋模型假设我们不考虑文本中词与词之间的上下文关系,仅仅只考虑所有词的权重。而权重与词在文本中出现的频率有关。
- 词袋模型首先会进行分词,在分词之后,通过统计每个词在文本中出现的次数,我们就可以得到该文本基于词的特征,如果将各个文本样本的这些词与对应的词频放在一起(简单来说就是拿出一个向量,向量就是由文本中出现的所有词和该词出现的频率所组成),就是我们常说的向量化。向量化完毕后一般也会使用TF-IDF进行特征的权重修正,再将特征进行标准化。 再进行一些其他的特征工程后,就可以将数据带入机器学习算法进行分类聚类了
- 词袋模型的三部曲:分词(tokenizing),统计修订词特征值(counting)与标准化(normalizing)
- 词袋模型有很大的局限性,因为它仅仅考虑了词频,没有考虑上下文的关系,因此会丢失一部分文本的语义。但是大多数时候,如果我们的目的是分类聚类,则词袋模型表现的很好
- 如果词汇表的特征太大,大到内存不够用,此时就