APP下载

基于word2vec的网站主题分类研究∗

2019-03-01程元堃

计算机与数字工程 2019年1期
关键词:特征词余弦语义

程元堃 蒋 言 程 光

(1.武汉邮电科学研究院 武汉 430074)(2.南京烽火软件科技有限公司 南京 210019)(3.东南大学计算机科学与工程学院 南京 210019)

1 引言

互联网时代的来临伴随着信息量的急速增长,作为信息的载体,互联网上每时每刻都在产生大量主题各异的文本,且数据量巨大。网站主题分类能够自动地将这些庞大的网站文本按照指定的类别进行规范化的梳理,而对于访问这些海量信息的人来说,了解信息的类别可以帮助人们更好地了解自身阅读的偏好。

目前,国内外对文本分类的研究十分关注,文本处理呈现的方式和分类器算法的选择一直是文本分类的两大技术难点及热点[1]。当前使用最广泛文本呈现方法几乎都是基于词袋法(Bag-of-Word,BOW)。词袋法将文本看成是若干个词的集合,不考虑其中词的顺序和语法、句法、语义等要素,假定文本中每个词的出现都是独立的,不依赖其他词是否出现。它将一篇文本表示成为与训练文本单词维度相同的向量,向量中每个位置对应的值即是该位置对应的词在文本中出现的次数,并且伴随着新单词的增加,向量的维度也会相应增加。虽然词袋法在传统的分类器上分类效果不错,比如:回归模型、KNN、朴素贝叶斯分类、决策树、支持向量机(SVM)等,但它依然不可避免地存在几个主要问题:1)维度较高,容易造成“维度灾难”,而且如果单词在训练集中没有出现,则该单词在测试集中出现时就无法成为该文本的特征词;2)训练生成的文本向量非常稀疏,不利于进行一些自然语言处理任务;3)词袋法仅仅就是将文本看作若干词的集合,没有语义方面的关系,词与词之间看作是相互独立的[3~4]。

随着近年来深度学习的发展,基于神经网络模型的特征词抽取,即“词向量”代表文本的方式越来越受到学术界的关注。Distributed representation最早由Hinton在1986年提出[5]。其基本思想是通过训练将每个词映射成K维实数向量(K一般为模型中的超参数),通过词之间的距离(比如cosine相似度、欧氏距离等)来判断它们之间的语义相似度,而word2vec使用的就是这种Distributed representation的词向量表示方式[6~8]。将词向量应用于自然语言处理非常成功,已被广泛应用于词性分析、找相似词、关键词聚类与分类等。

一个中心主题突出的网站内容由很多语义相似的词构成,基于此,如何将能表示词语语义的词向量应用在网站主题类别的判断上是技术难点。本文提出一种基于word2vec的网站主题分类方法,将词语之间语义相似度转化为词向量的空间距离,并在此基础上根据文本间的相似距离进行分类。

2 模型总体方案设计

2.1 方案设计流程

整体方案分为训练和测试、调参两个过程,具体实现过程中考虑到文本本身会存在语义相交的情况,需要对文本进行边界点过滤的数据预处理,本文采用DBSCAN聚类算法进行噪音点去噪。详细流程如图1所示。

图1 基于word2vec的主题分类过程

2.2 方案步骤

本文提出基于word2vec的网站主题分类的方法实现步骤如下:

1)基于维基百科中文语料库,使用word2vec训练得到词向量模型model。

2)定义网站主题分类的八大类别,列举各主题特征词样本,在1)中获取与特征词相似度较高的词作为补充,扩充各主题特征词。

3)计算各个主题特征词的向量均值,将其作为各主题的中心词向量,并对各主题中心词向量进行评估,保证主题之间余弦相似度不要太高,否则重复2)对特征词进行调整。

定义1 主题i的关键词集合为Ci={w1,w2,…,wn},其中wk(1≤k≤n)表示代表i类主题的某个关键词,在model中获取每个特征词的词向量viwk=(,,…,),其中K表示语料库中词映射到空间向量的维度,因此,可以得到每个主题样本的词向量集合:

得到一个(n*K)的矩阵:

计算向量均值,得到主题i的中心词向量:

4)对于待测网站文本,分词后在model中获取每个词的词向量;采用余弦相似度作为距离评估方法,使用DBSCAN聚类算法对分词结果进行去噪处理,得到质量提升的特征词集合。

5)针对每个主题的中心词向量,计算它与特征词集合中每个词的词向量的余弦相似度,最终结果取平均,作为该网站与各主题的余弦相似度,最终取余弦相似度最大的类别作为该网站的所属主题。

定义2 待测网站文本内容经4)去噪处理后表示为T={t1,t2,…,tm},其中tj为文本中某词,获取其词向量vtj={y1,y2,…,yK},计算词和主题i中心词向量VVi的余弦相似度,有

据此,得到该待测网站与主题i的余弦相似度:

最后,取max(dis(CiT))时i的值作为待测网站T最终的所属分类主题。

3 关键技术

3.1 语料库预处理

在维基百科数据源上下载中文版本维基百科数据,数据格式为XML。利用gensim里的维基百科处理类WikiCorpus,通过get_texts将维基里的每篇文章转换化一行文本,并且去掉了标点符号等内容。处理后会发现文本存在中文繁简体情况,本文采用GitHub上的开源中文繁简体转换项目OpenCC,该项目翻译准确,使用方便。将文本中的繁体字转化为简体字后,最后对文本进行分词。采用jieba分词系统,结巴分词基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG),采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法[9]。由于中文和英文不同,单独的字大多数并不能独立表达意思,因此分词过程中需过滤筛选出词长大于等于2的词。

3.2 词向量模型

NLP中有两种常见的词的表示方法,分别是One-hot Representation和Distributed Representati-on。One-hot Representation把每个词表示为一个很长的向量,这个向量的维度就是词表的大小,其中绝大多数为0,只有一个维度的值为1,这个维度就代表了当前的词。但是在Deep Learning中一般用到的词向量并不是上述的One-hot Representatio-n,而是用后者表示的一种低维实数向量,这种方法的优势在于让语义上相关或者相似的词,在距离上更近了,而且也不会造成“维度灾难”。

Word2vec使用Distributed Representation的词向量表示,包含CBOW(Continuous bag-of-words,连续词袋模型)和Skip-Gram两种模型。Word2vec通过训练,把文本内容的处理简化为K维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。如图2所示通过PCA降维在二维空间中展示词向量分布及其语义之间的距离关系。

本文采用基于Hierarchical Softmax算法的CBOW模型。由图3可见,模型包含三层:输入层、投影层和输出层。CBOW模型是在已知当前词wt的上下文wt-2,wt-1,wt+1,wt+2的前提下预测当前词wt。

图2 二维空间中的词向量

图3 CB OW模型

已知基于神经网络的语言模型的目标函数通常取为如下对数似然函数:

其中的关键是条件概率函数 p(w|Context(w))的构造。Hierarchical Softmax的基本思想是对于词典D中的任意词w,Huffman树中必存在一条从根结点到词w对应结点的路径Pw(且这条路径是唯一的)。路径Pw上存在lw-1个分支,将每个分支看做一次二分类,每一次分类就产生一个概率,将这些概率乘起来,就是所需的 p(w|Context(w))。因此CBOW的优化目标函数为

利用随机梯度上升法对其进行优化。

3.3 DBSCAN聚类算法

网站文本经分词后得到一个表征该文本的词列表,每个词在model中有对应的词向量,其中部分词与词之间语义上存在偏差较大的情况,此时以余弦距离作为评估标准,对词列表中的每个词采用DBSCAN算法对词向量进行聚类,得到能够有效表达与网站文本语义相近的词向量聚类结果[10~13],这样有利于提高网站文本的特征词质量,然后再计算与各主题中心词向量的余弦相似度,为得到良好的分类模型性能奠定基础。

以体育主题为例,文本“即将于15日前往浙江参加世界女篮联赛中国站比赛的中国女篮进行了公开训练课,小区发生群殴。”分词聚类前后结果如表1所示。

表1 DBSCAN聚类效果

从表1可看出聚类前后剔除了部分语义和体育主题偏差较大的词:15、小区、群殴、浙江,余下词作为特征词可以较好地表征文本的主题。

4 实验与结果评估

4.1 数据准备

根据定义的八大主题通过网络爬虫技术获取搜狗新闻相应的文本数据,经过处理后得到各个主题的文档数据;按照方案设计的步骤,列举各主题特征词样本,结合词向量model中相似度较高的词进一步扩充主题特征词,相关数据情况如表2和表3所示。

表2 测试主题网站

4.2 实验结果

本文基于word2vec和DBSCAN聚类算法对测试网站文本进行实验,其中DBSCAN聚类算法中存在半径Eps和MinPts(在半径Eps内含有点数目的阈值)两个参数需要根据分类结果的正确率进行调参。

MinPts分别设置为3和自适应值 int(log2(len(-text_list))),len(text_list)是文本分词后词列表的长度。

绘制MinPts两种取值情况下分类结果正确率随Eps变化趋势,分别如图4和图5所示,由图4和图5可知,当MinPts自适应取值时的分类效果明显好于取固定值的时候,且在Eps=0.88时,分类正确率达到了90.6%。

表3 网站主题特征词

图4 MinPts=3

图5 MinPts=int(log2(len(text_list)))

5 结语

本文基于word2vec的词向量模型实现了网站主题分类,预先定义了八大主题,通过词频统计和计算词中心向量的方法确定各主题的特征词及其词向量,即各主题的中心词向量;采用DBSCAN聚类算法对待测网站进行去噪处理,提升了网站文本的数据质量,最后以余弦距离作为评估标准确定待测网站在给定主题中的分类结果,最终分类效果较好,正确率达到了90.6%。

相较传统的贝叶斯、支持向量机(SVM)等分类器模型,该方案有效避免了数据稀疏以及词与词之间缺乏语义关联造成的建模困难等问题,同时扩充和筛选的特征词如何更好地表征网站主题,这值得继续研究。

猜你喜欢

特征词余弦语义
真实场景水下语义分割方法及数据集
基于Simhash改进的文本去重算法
基于类信息的TF-IDF权重分析与改进①
一种面向财务文本分类的TF-IDF改进算法
椭圆余弦波的位移法分析
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
“吃+NP”的语义生成机制研究
分数阶余弦变换的卷积定理
情感形容词‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的语义分析