返回信息流问题:
有上百万条短文本序列[由一个词一个词组成的,说序列是因为词和词之间是有一定的前后关系的,但是这些词中有些词是无用的信息,会影响序列前后关系,就是噪声],有些词会出现同义词,一条序列词的个数大概在10~30之间,如何更好的聚类,效果好且聚的类少【我是先随机采样了2000条数据分析的,总共有两百多万条文本在数据库中,用w2v应该不太可能,数据涉及保密不好取】
具体的我描述一下,比如短文本如下:
[A,B,C,D,E,F,G,H]
[A,K,C,S,D,E,F,G,H,L]
[A,B,K,C,D,S,F,G,H]
[A,C,D,F,G,H,N]
[A,B,C,D,S,F,G,H]
这些其实都是一类的,比如是模板[A,C,D,F,G,H]这一类的,但是含有噪声B,K,S等,目的就是让这些文本聚到一起
思路:
我有下面两条思路:
1. 找出频率比较高的词,设定一个阈值,构建词表,用BOW+n-gram+IDF构建向量,然后聚类【这个最大的问题是IDF的使用,有些无用词会影响聚类效果,导致聚的类变多,如何选择一个合适的权重,以降低无用词的效果】
2. 用语言模型,使用维特比生成一条最大概率的序列,然后通过匹配或者最大公共子串等方法找出和这个序列最相似的文本作为一个类别,然后剔除掉这些文本,继续求解剩下的文本中最大概率的序列,重复上述操作,直到剩下的文本低于某一阈值。
其他:
查了一些资料,有用LSTM自动编码训练的[类似于seq2seq,优化的目标是模型的输出和输入尽量相同,以编码的输出作为文本的表示]
问一下各位大佬,有做过这方面的研究的吗,有什么比较好的论文或者方法针对短文本序列聚类的吗,或者有什么建议吗
谢谢了~~~
[ema23][ema23][ema23]
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #29964同步于 2018/6/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
【问题】短文本序列聚类问题
chhaapspey
2018/6/9镜像同步25 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
如果你要用聚类方法的话,首先要对短文本表示建模,就是沙发说的句向量,具体如何建模,你可以从简单的方法出发,比如词向量的n-gram+bow,再到复杂的句向量文本表示模型,如何构建句向量取决于你想要句向量表示的内容,是关键词信息,还是整个序列信息,一点参考,欢迎讨论哈
之前看到有个博士学姐做的类似的工作,思路挺简单的。word2vec,然后用词向量平均代表句子的向量,感觉效果还可以。百万条的短文本word2vec调一下应该是有效果的
我更了一下,暂时不考虑用w2v,你说的句向量是doc2vec吗,不是的话能推荐一下相关文章吗,谢谢~
【 在 jaegerstar 的大作中提到: 】
: 可以利用词向量或者比较新的句向量方法聚类试试,有点类似于你提到的用lstm的做法。当然也要看你数据。单纯提供思路,最后也要实验说话
我现在在试n-gram+bow,序列信息是为了提取关键词信息,主要是文本噪声比较多 ,关键词很难定义
【 在 Blachat 的大作中提到: 】
: 如果你要用聚类方法的话,首先要对短文本表示建模,就是沙发说的句向量,具体如何建模,你可以从简单的方法出发,比如词向量的n-gram+bow,再到复杂的句向量文本表示模型,如何构建句向量取决于你想要句向量表示的内容,是关键词信息,还是整个序列信息,一点参考,欢迎讨论哈
w2v可能暂不考虑~~
【 在 bdyzhy9527 的大作中提到: 】
: 之前看到有个博士学姐做的类似的工作,思路挺简单的。word2vec,然后用词向量平均代表句子的向量,感觉效果还可以。百万条的短文本word2vec调一下应该是有效果的