句表示
Posted chenying66
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了句表示相关的知识,希望对你有一定的参考价值。
阅读NLP相关的论文,并进行知识点总结
句表示
- 句子表示:主要是将自然语言编码为可以被机器处理的方式,使用句子级别的建模,能够有效的提取句子的语义
- 句表示的分类:分为离散表示和稠密表示。其中,离散表示代表有one-hot, 稠密表示可以通过对词向量进行加权,如TF-IDF,SIF等
- 语义模型的目标:一次表示,多领域应用。从而实现预先训练,针对特定应用进行微调的效果
基于词袋模型的句表示
- 词袋表示简单高效,具体的是指将句子中的word进行划分,构建vocabulary。该模型忽略了文本的语法和语义,只对词汇进行采集,且每个单词的出现都是独立的。这个方法在SLAM中对场景进行特征点检测时也用到了,在SLAM中,主要是使用一个向量来描述“图像是否含有某类特征”的信息,比单纯的灰度值更加稳定,但是相较于此时直接将句子进行词的划分,在SLAM中需要先使用k-means进行聚类来获得代表局部相邻特征点的集合的单词。
- 该方法的缺点:忽略了单词之间的语义,先后顺序,只是进行独立的概率统计。只依赖于词本身
- 该方法的优点:简单、高效
- 基于one-hot表示的句表示:在任意时候,只有一位有效
- 具体的操作方式:对语料库进行分词,并对每个词进行编号,对于语料库中的每一句话,都是用总的编号长度进行编码。对应词出现,即为1,否则为0。
- 此时,未考虑词序,假设词与词相互独立,高维、离散、稀疏 - 词表示加权:对词进行加权,得到稠密的句表示。遵循原则:越常见的词权重越小。主要有TF-IDF和SIF两种表示方法。
- TF-IDF,即TF-IDF(x)=TF(x)*IDF(x)。其中,TF(x)表示x在总的语料中出现的次数,IDF表示log(N/N(x)),N(x)为当前语料中出现x的句子个数;N:语料中的句子总数。SLAM中也有使用TF-IDF进行对象的检测。
- SIF=α/(TF(x)+α)
虽然简单、快捷,但是没有合理的利用句子语义信息
基于神经网络的句表示
- 基于语言模型的句表示,主要是通过条件概率分布,来预测当前句子产生的概率,属于生成式表示。此时考虑了语序,但是仍然是词级别的语义
- Doc2vec: 无监督。在语言模型的基础上,增加了段落ID的信息,从而得到句级别的语义。从而在反向梯度更新时,也可以更新句子矩阵中对应行的参数。
- 优点:利用语言模型的信息,学习语言知识;
- 缺点:没有考虑句子之间的信息。 - 基于复述的有监督句表示:有监督,需要大量的复述句的语料。可以首先寻连一个翻译模型,用于产生复述句。
关键在于如何衡量复述句之间的相似性,多使用向量表示的cosine值作为相似性度量,然后最大化复述句之间的相关性,降低非复述句之间的相关性
-缺点:有监督,需要大量的复述句的语料;依赖于句子之间的相似和/或不相似的内容
常见的测试数据集和测试方法
- 测试数据集:
- 情感分类
- 主题分类
- 语义相似性度量
- 复述句检测
- 文本蕴含等 - 测试方法:
- 固定句表示,在对应任务等训练数据集上学习分类器
以上是关于句表示的主要内容,如果未能解决你的问题,请参考以下文章
ACL 2021|美团提出基于对比学习的文本表示模型,效果相比BERT-flow提升8%
NLTK:语料库级别的 BLEU 与句子级别的 BLEU 分数
论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS
论文解读-SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS