有哪些文本表示模型?它们各有什么优缺点?

1.词袋模型   和  N-gram模型

词袋模型

最基础的文本表示模型是词袋模型。顾名思义,就是将每篇文章看成一袋子词,并忽略每个词出现的顺序。

就是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应得权重则则反映了这个词在原文章的重要程度。

    常用TF-IDF来计算权重,公式为:

                                    TF-IDF(t,d)=TF(t,d)*IDF(t)

其中TF(t,d)指单词在文档d中出现的频率。IDF(t)是逆文档频率,用来衡量单词t对表达语义的重要性,值越大,对语义越重要。计算方式:

                                   IDF(t)=Log(文章总数/(包含单词t的文章总数+1))

直观的解释就是,如果一个单词在非常多的文章里出现,那么他可能是一个比较通用的词汇,对于区别某篇文章的特殊语义的贡献较小,因此对权重做一定的惩罚。

N-gram模型

将连续的N个词组成的词组(N-gram)也作为一个单独的特征放到向量表示中去,构成N-gram模型。

另外同一个词有多种词性变化,又表示相同的含义,一般会对这些单词进行词干抽取处理。将不同词性的单词统一成为同一词干的形式。

主题模型:

主题模型用于从文本库发现有代表性的主题(得到每个主题上面词的分布特性),并且能够计算出每篇文章的主题分布。

词嵌入与深度学习模型:

词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常50-300维)上的一个稠密向量。K维空间中的每一维都可以看作是一个隐含的主题,只不过不像主题模型中的主题那么直观。

由于词嵌入将每个词映射成一个K维的向量,如果一篇文章有N个词,就可以用一个N*K维的矩阵来表示这篇文档,但是这样表示过去底层。

在实际应用中,如果仅仅把这个矩阵作为源文本的表示特征输入到机器学习模型中,通常很难得到满意的结果。因此,还需要在此基础上加工出更高层的特征。

在传统的浅层机器学习模型中,一个好的特征工程往往可以带来算法效果的显著提示。

深度学习模型正好为我们提供了一种自动 的进行特征工程的方式,模型中的每个隐层都可以认为对应着不同抽象层次的特征。

卷积神经网络和循环神经网络的结构在文本表示中取得很好的效果,主要是由于他们能够更好的对文本进行建模,抽取出更高层的语义特征。。与全链接网络结构相比,卷积神经网络和RNN一方面很好的抓住了文本的特征,另一方面又减少了网络学习中待学习的参数,提高了训练速度,并且降低了过拟合的风险。

猜你喜欢

转载自blog.csdn.net/qq_29678299/article/details/88698158