ngram低维表示学习笔记

本文探讨N-Gram低维表示在文档分类中的应用,通过转换词向量为语义特征,实现维度降低,提高处理速度。实验表明,2-gram优于1-gram和3-gram,混合gram表现更佳,且模型性能优于LSA、LDA。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是学习N-GRAM-BASED LOW-DIMENSIONAL REPRESENTATION FOR DOCUMENT CLASSIFICATION
的笔记。如果英文好的,请直接看论文。
ngram是词袋模型的子类。对于提取上下文语义有重要意义,然而n很大时,维度将非常高,运算复杂度剧增。而工业界中的认为都对响应速度要求特别高。ngram低维表示能降低维度,大大提高效率。

ngram简介

语句是由词构成的序列,ngram认为当前词只与他前面的n-1个词有关。即一个语句中当前词出现的概率为P=P(w|前n-1个词)。
当n=1时,认为词只与当前词管,即词相互对立。忽略了词序信息
n>1时,能提取到一定程度的语义信息。通常n取1、2、3;由3增加到4时,性能并未增加多少,但是特征空间维度增加特别多(维度为|D|^n)。

ngram低维表示

这个模型在有些博客上称为LD算法,忧伤的是有的人可能查不到。。。。(我和我同事同时用goole搜索LD,我搜出来一些乱七八糟的,同事的第一个搜索结果就是。。。)

基本思想:ngram是基于语句是词序列(字==>词),LD认为语句是一语义序列(词==>语义);ngram是语义的基本提取,但是可能维度特别高,故我们转为学习ngram的特征。这样一个语句就可以由语义特征表示了。

主要流程分三步:

  1. 构建ngram的词向量:通过skip-gram或者Glove获得词向量,然后通过向量相加并求均值作为聚类的输入。获得的句向量维度相同,可以定义距离,故能做降维。
  2. 使用KMean对上一步学习到的词向量进行学习。就是普通的聚类算法。例如聚类为100类
  3. 把语句表示为语义为特征的向量。从上面获得了语义空间特征,语句就可以表示为以语义空间特征的向量,值为对应语义特征在语句中出现的频率。作者的示例中是用计数向量的各个分量最大值作为对应特征的值。如下图
    在这里插入图片描述

论文中作者总共考虑了5种ngram组合:在这里插入图片描述
作者的实验结果:

  • 2-gram好于1-gram、3-gram,混合gram更优
  • 语义相近的词属于同一类
  • 能清晰的区分反义词
  • 模型特征少了几百倍的情况下,性能好于LSA、LDA

论文里说这样获得的向量在SVM上会获得很好的效果。
但是我有疑问,这和词向量有什么区别?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值