文本表示概览

文本表示

文本表示是自然语言处理任务中一项基础任务,一个好的文本表示对下游的任务效果有非常关键的决定作用,最常见的如文本聚类、分类等。

  • 概论
    如何描述一个句子,其实可以从两个方面进行思考,第一个是进行表示句子是由词序列构成的,那么句子的表示自然可以由构成该句子的次序列表示; 在一个是句子是篇章的构成元素,那么句子也可以由篇章中句子的环境进行表示,这里应用的常识是信息的局部性

  • 传统表示方法
    这里的传统表示方法是针对目前正火的深度学习浪潮而言的。
    (1)文本的字符表示,直接用句子的词、或者词的ngram信息进行表示。缺点是非数字不能数学计算只能匹配,词的相似性也只能依靠外部词典进行表示。
    (2)文本的数量表示,如one-hot、tf-idf等表示,带有了一定量的统计信息,表示效果有所改善,并且表示有数学表示可以通过距离公式进行相似性计算,缺点是向量稀疏占用空间大,词的相似无法很好的刻画。
    (3)局部哈希算法,感觉使用于中等长度的句子,太长和太短都不太好,对句法和次序敏感。
    (4)doc2vec,gensim包里面就有,有LSI和doc2vec两种方式,LSI主要依靠数据降维,解释性不太好,模型也不小。doc2vec对集外数据不敏感。

  • 基于深度学习的句子表示
    深度学习的句子向量表示一般和任务相关,如分类生成等。
    (1)skip-thought:借助生成模型,用该句子的表示去生成其上下文,因为再常识中拥有相似上下文的句子其语义也是相似的,对文本的结构依赖就相对弱了一些。但是在实验中发现尾词对其表示影响较大。
    (2)quick-thought:借助的是一个分类模型,依赖的常识是相邻的句子语义相关性要比不相邻的句子要大。实验发现其结果不是很稳定,有些句子会比较离谱,可能和训练数据有关系。说道了分类,感觉原理上和语义匹配模型DSSM神似啊。也就是说分类本质上是一个空间映射的问题,当分类标签为句子语义的时候,那么在分类任务的下游任务去除,其编码表示就可以是语义表示。类别太粗是不行的。

  • 基于语言模型的句子表示
    (1)bert:这个是真火,用到了词之间的相关和句子之间的相关。还如:ELMo、GPT等。这这里就不展开了,语言模型需要海量的训练语料,高性能的计算资源,不是普通晚间可以玩得起的。

猜你喜欢

转载自blog.csdn.net/cyinfi/article/details/81989821
今日推荐