NLP系列学习:文本聚类

作者: 云时之间 | 来源:发表于2018-07-31 21:21 被阅读28次

最近一段时间在文本聚类的工作,一路也遇到了不少坑,自己也写一篇文章记录了一下自己的过程.

1:什么是文本聚类

先说说聚类的概念,聚类又称群分析,是数据挖掘的一种重要的思想,聚类(Cluster)分析是由若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者是多维空间中的一个点。聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性。(以上来自百度百科).

再说到文本聚类,文本聚类其实也就是在文本方向上的应用,首先我们要把一个个文档的自然语言转换成数学信息,这样形成高维空间点之后再去计算点与点之间的距离,然后将这些距离比较近的聚成一个簇,这些簇的中心成为簇心.而我们做的就是保证簇内点的距离足够近,簇与簇的距离足够远.

我接到的任务是在评论文本上进行聚类操作,起初以为很简单,但是发现其实还是不是很好操作的,有几个原因,一方面是评论有些部分语义其实是重复的,这样导致一些类别会重合,这样使用聚类的方法往往是不准确的,另一方面是一些评论上的词语使用近义词和一些音译字来替换词语,比如”微信”会转成”V信”等这些在分词的时候会有一些问题.并且又因为聚类是一种非监督学习,往往给我们的数据太多(给我的评论数据有80w,有多少类,什么类)我们都不知道,我们也只能轮廓系数不断地测试,找到一个合适的结果出来.

并且我们用的一些算法也有一些问题,比如我们使用的K-means方法,每一次选取的簇心是随机的,这样一来得到的结果也是每次不一样的,所以聚类算法也是比较难评价,这也是一些困难的部分.

2:文本聚类的过程

主要的过程如图所示,其实主要的部分有三个:

第一部分,分词处理,我们要把中文文章要进行分词,这一点中文文章和英文文章有一些区别,因为英文单词是单个构成的,也就不需要分词了,而我们中文是需要分词的,并且中文之间有一些词尽管大量出现,但是对于文章的分类结构起不到太大的意义,比如”的”,”了”,”么””应该”,这些词去计算他们既浪费空间又浪费时间,出于+1s的因素,我们也要节约时间啊,首先我们就加入一个停用词表,在进行分词的时候进行去掉.

第二部分:分词后将分词转换为词向量

关于词向量我们有一些比较常用的模型,比如one-hotm,BOW词袋模型,连续词袋模型(CBOW)和Skip-Gram模型和Word2vec模型,在这次任务中我是用的是BOW词袋模型,在转换为词向量值我们要将其转换成tfidf矩阵,tfidf其实可以看作是提取的特征的一次加权,是根据一个单词在当前文章中出现的频率和该单词在所有语料中出现的频率评估一个单词的重要性,当一个单词在这篇文章中出现的次数很多的时候,这个词语更加重要;但如果它在所有文章中出现的次数都很多,那么它就显得不那么重要

第三部分:选择聚类算法

这里的算法大家常用的是K-means和DBSCAN,这两种算法用的最多,但是在高维空间里边K-means似乎并不是很好,究其原因是因为维度太高,簇与簇之间的距离太小了,如果直接去聚类,这一部分似乎效果不太好,这时候就需要用到主成分分析PCA,大致的思路是大致意思就是取这个高维向量中方差最大的方向经过一些数学变换将有用的部分保留,没用的部分舍弃,这种办法同样适合分类算法中寻找最大的特征.

这一部分似乎也得单独拿出一篇文章好好写一下,毕竟太多坑了.

最后算法评测,对于K-means,我们使用的是簇的距离进行评定,对于Brich层次聚类,我们使用的是轮廓系数来评定,最后发现,这真是一个调参活,感叹真不容易.

最后效果:

红色虚线是轮廓系数,柱状图是类别,尽量多的让柱状在轮廓系数附近,我们可以认为结果取得不错.

具体的再写文章细说吧,困了休息.

祝大家度过愉快的一天

相关文章

  • NLP系列学习:文本聚类

    最近一段时间在文本聚类的工作,一路也遇到了不少坑,自己也写一篇文章记录了一下自己的过程. 1:什么是文本聚类 先说...

  • 第8课:动手实战基于 ML 的中文短文本聚类

    关于文本聚类,我曾在 Chat《NLP 中文文本聚类之无监督学习》中介绍过,文本聚类是将一个个文档由原有的自然语言...

  • NLP之文本聚类

    一 文本聚类简介 1.1、定义 文本聚类主要是依据著名的聚类假设:同类的文档相似度较大,而不同类的文档相似度较小。...

  • 2018-12-19

    文本聚类算法之K-means算法的python实现 一、文本聚类定义 文本聚类主要是依据著名的聚类假设:同类...

  • 2018-06-23NLP知识体系

    NLP 自然语言处理的大致知识领域如下 语法分析 句法分析 情感分析 句子生成 句子相似度 文本分类/聚类 文本表...

  • NLP 预处理总结

    在处理 NLP 相关任务的时候(文本分类、聚类,智能客服等),首要任务是对文本数据进行预处理。结合自己的实践经验,...

  • 干货|NLP领域中文vs英文有什么异同点,中文NLP有什么独特的

    文章来源:知乎 作者:刘知远、李嫣然 刘知远关于NLP的精彩回答 从实用文本分析技术而言,如果只做主题聚类、文本...

  • pyhanlp文本聚类详细介绍

    文本聚类 文本聚类简单点的来说就是将文本视作一个样本,在其上面进行聚类操作。但是与我们机器学习中常用的聚类操作不同...

  • 【NLP实战笔记】文本聚类算法总结

    本文主要用于归纳总结与文本聚类算法相关的技术。 还可以吗

  • 文本聚类

    背景介绍 由于项目需要,需要对旅游游记文本进行聚类,为打标签做指导,所以调研了主流的短文本聚类方法,文本聚类主要还...

网友评论

    本文标题:NLP系列学习:文本聚类

    本文链接:https://www.haomeiwen.com/subject/xkrkvftx.html