本发明属于数据挖掘技术领域,尤其是一种基于互约束主题模型的半结构短文本集中子话题发现方法。
背景技术:
微博短文本的话题结构的探索和自动建模日益成为一个热门的研究课题,该技术对于自动信息知识的获取十分重要。然而由于微博短文本自身长度短、词汇稀疏、书写不规范等原因导致了数据中严重的高稀疏和高噪音问题,使得传统的主题模型(例如lda、plsa)难以直接建模得到微博短文本中的主题语义信息。针对以上问题,研究者采用数据扩充方法,目的是将短文本转化为长文本进行建模,比较典型的技术方案如下:通过相同用户、相同词汇、或者相同的话题标签聚集短文本,但这类集成方法在这种伪文档集成的关联元素不存在时,无法轻易推广到广泛类别的短文本建模中,会面临失效。通过不同的池化策略来扩充词汇共现;在进行主题建模之前先基于非负矩阵分解将短文本进行聚类。利用维基百科和wordnet中的词组关系构建了一个语义结构树,这种方法会比较依赖长文本集合中构建的语义结构树的准确性和完备性。由于微博短文本自身使用过程中的独立性,数据扩展的方法很有可能会引入新的噪声。除了从内容着手,一些工作利用了半结构化的信息如话题标签来进行微博短文本建模。例如带标签的lda方法即是利用手工定义的监督标签来控制微博短文本间的关系,该方法对手工定义的标签有较强的依赖性从而难以进行泛化和扩展。还有构建一个话题标签的图来对话题标签的关系进行建模,进而将话题标签作为主题模型的弱监督信息,提出基于话题标签图的主题模型,但这该方法间接进行了内部数据的扩充,噪音是单向在语义网络中传播的,是进行无约束的传播的。以上方法对半结构短文本建模均有一定的局限性,难以满足现实应用中对短文本集合中的话题子结构挖掘和建模的需求。
技术实现要素:
本发明的目地在于克服现有技术的不足,提出一种基于互约束主题模型的半结构短文本集中子话题发现方法,其采用互约束潜在主题建模,通过获得高质量短文本中话题标签主题语义的手段得到有效的短文本集合中话题子结构,解决了现有半结构短文本主题语义建模技术面临的高稀疏和高噪音的问题。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于互约束主题模型的半结构短文本集中子话题发现方法,包括以下步骤:
步骤1:对含话题标签的短文本集合进行数据清洗;
步骤2:按照种子话题标签抽取出针对某一话题的含指定种子话题标签的短文本;
步骤3:对清洗后的数据进行输入文件生成;
步骤4:将步骤3生成的输入文件输入至互约束主题模型中,训练模型得到潜在主题分布相关参数;
步骤5:根据步骤4的训练结果,得到集合中话题标签的语义向量表示、所在文本的平均语义向量表示以及话题标签所在文本的词汇向量表示;
步骤6:将步骤5得到的三个向量表示依次接连起来作为一个话题标签的完整语义表示;
步骤7:使用kmeans聚类方法对步骤6得出的话题标签的完整语义表示进行聚类,将聚类得到的类别的质心作为子话题输出。
所述步骤1包括以下内容:将短文本按照语言分成不同语言;中文的进行分词处理,英文的字符均转换为小写并使用斯坦福的自然语言处理工具,还原词汇词干;去掉使用频率过小或过高的词汇;去掉有效文本长度过小的短文本。
所述步骤3生成的输入文件包含:词字典、话题标签字典、整个文本集合的词序列和文档id序列和文本-话题标签对应矩阵。
所述步骤4采用的互约束主题模型为阶层贝叶斯生成模型,该模型参数求解目的是使得观察到的文本集对应最大的似然概率;设每个话题标签都对应文档集所覆盖主题上的多项式分布θ,每个主题都对应词汇上的多项式分布
θi|α~dirichlet(α)
φi|β~dirichlet(β)
ydi|z-1~p(y|z-1)
其中,z-1是当前词汇的主题采样先验;模型根据先验分配情况,推断潜在话题标签采样到ydi的概率,以此通过词汇的主题反向生成话题标签;该模型通过词汇、潜在标签与主题三者的分配关系,考虑话题标签对应的层次信息与主题结构之间的关系,建模两者的联系,从而约束学习到的主题与原始语义表达相对应。
所述步骤7的具体实现方法包括以下步骤:
⑴从n个数据对象任意选择k个对象作为初始聚类中心,k为聚类输出的类簇数;
⑵根据每个聚类对象的均值,计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
⑶重新计算每个有变化聚类的均值;
⑷计算标准测度函数,当函数收敛或达到最多迭代次数时,则算法终止;如果条件不满足则回到步骤⑵。
本发明的优点和积极效果是:
1、本发明通过分析半结构短文本集合中话题标签对于文本中话题活动事件表达和关联描述的重要意义,利用短文本主题语义与话题标签之间的共生和共同表达的关系,将话题标签和短文本共同映射在同一语义空间进行互约束的语义建模;将话题标签建模为语义约束模型下话题标签的语义空间分布、话题标签所在文本的语义空间平均分布、话题标签所在文本的原始词汇空间分布;通过这三种信息,综合表示话题标签的局部和全局的语义信息,最终将这三种信息进行话题下的话题标签聚类,将话题标签聚类结果作为话题的子话题,解决了现有半结构短文本主题语义建模技术面临的高稀疏和高噪音的问题。
2、本发明采用话题标签和短文本的潜在主题语义建模:利用同一文本内短文本和话题标签的共生关系和语义的同期表达,学习出更准确的话题标签和短文本主题语义特征表达,学习到的主题一致性更高、准确性更好、主题更清晰。
3、本发明通过短文本集合子话题发现:利用新的互约束主题模型进行潜在语义表达建模,由于有效建模,生成的向量表示可以有效表达话题标签的主题语义,同时相关短文本的主题语义和词汇向量的表示进一步辅助建模,通过聚类生成话题标签的主题语义簇,从而发现短文本集合的子话题,是一种通过话题标签这种群体智慧信息得到话题子结构的新方法。
附图说明
图1是本发明的整体系统结构示意图;
图2是本发明中互约束主题模型的示意图;
图3是本发明中使用的聚类方法的示意图。
具体实施方式
以下结合附图对本发明实施例做进一步详述。
本发明的设计思想是:在学习短文本和话题标签潜在语义表示时,利用单条短文本和话题标签之间的话题约束关系,在传统主题模型中引入话题标签和短文本相互约束的生成过程,从而学习到两者一致的潜在语义表示。该语义空间能够保证短文本和话题标签的语义一致性。在得到话题标签和文本的语义表示后,同时利用话题标签所在文本的词汇来共同描述话题标签的语义。通过聚类话题标签得到某话题下的子话题;该子话题是通过话题标签簇来表示的。
一种基于互约束主题模型的半结构短文本集中子话题发现方法,如图1所示,包括以下步骤:
步骤1:对含话题标签的短文本集合进行数据清洗。
在本步骤中,主要包含以下内容:1)将短文本按照语言分成不同语言;2)中文的进行分词处理;3)将英文的字符均转换为小写,并使用斯坦福的自然语言处理工具,还原词汇词干;3)去掉使用频率小于10的词以及频率最高的100个词汇;4)去掉有效文本长度小于2的短文本。通过上述方法是为了去除短文本中低质量、无意义的内容。本发明针对的对象和作用域是使用含话题标签的短文本。
步骤2:按照种子话题标签抽取出针对某一话题的含指定种子话题标签的短文本。
其中,种子话题标签用于初步界定话题。通常,话题会由少数个特定的热门话题标签。以“2011年埃及革命”话题事件为例,主要使用的话题标签有“#jan25”,“#egypt”,“#revolution”等。种子话题标签选取5个左右话题下高频话题标签作为种子话题标签集合s的初始化。首先,获得包含这些话题标签的短文本,获得与这些话题标签在短文本中共同出现的话题标签集s’。其次,获得包含s’的短文本。仅作一次扩展。如希望更高的模型召回率,可以进行多次相同的操作。
步骤3:对清洗后的数据进行输入文件生成。
模型输入文件包含:1)词字典,2)话题标签字典,3)整个文本集合的词序列和文档id序列,4)文本-话题标签对应矩阵ad。
例如微博1:“#egyptisthebestcountry”,微博2“weholdthepresidentforever#jan25#egypt”。
词字典为“begoodcountryweholdpresidentforever”;话题标签字典为“#egypt#jan25”;文本集合词序列为“1234567”,对应的文档id序列为“1112222”。文本-话题标签对应矩阵为:
其中,行为文档,列为话题标签。
步骤4:将步骤3中的输入文件输入至互约束主题模型中,训练模型得到潜在主题分布相关参数。具体方法如下:
本步骤使用的互约束主题模型是阶层贝叶斯生成模型。模型参数求解目的是使得观察到的文本集对应最大的似然概率。此处认为每个话题标签都对应文档集所覆盖主题上的多项式分布θ,每个主题都对应词汇上的多项式分布
θi|α~dirichlet(α)
φi|β~dirichlet(β)
ydi|z-1~p(y|z-1)
其中,z-1是当前词汇的主题采样先验。模型根据先验分配情况,推断潜在话题标签采样到ydi的概率,以此通过词汇的主题反向生成话题标签。此处,模型通过词汇、潜在标签与主题三者的分配关系,考虑话题标签对应的层次信息与主题结构之间的关系,建模两者的联系,从而约束学习到的主题与原始语义表达相对应。图2给出了为互约束概率主题模型示意图。
本步骤的互约束主题模型的输入为步骤3中的内容。h为当前文档d中所包含的话题标签,共hd个,w为文本中包含的词,z-1为当前词汇的主题先验,在首次迭代中该值随机初始化,之后迭代中将上一轮的主题分配值
根据图2给出的互约束主题模型,文本集合的生成过程如下所示:
1、t,α,β被预先定义,
2、对于每一个标签i=1:h,采样其对应的主题分布θi~dir(a),
3、对于每一个主题t=1:t,采样其对应的词汇分布φt~dir(β),
4、随机初始化文档中词的潜在主题分配z以及潜在话题标签分配y先验,
5、遍历文档集中的每一篇文档d=1:d,采样其长度nd,给定其对应的标签集合hd,文档d中的每个词位置wdi通过如下操作选取确定,
1)根据当前词汇的主题先验
2)根据潜在话题标签ydi,为当前词汇采样一个主题
3)根据潜在主题zdi,采样当前词汇
其中,
需要注意的是,模型中潜在变量y、z、z-1构成了一个环状依赖关系,主题、话题标签、词汇三者之间是复杂的多对多关系。这种环状依赖就构成了文本主题与话题标签互生成的过程。该过程形象地模拟了用户写作短文本的过程,对应文本集合中短文本的生成。首先,用户确定当前短文本的写作主题,对应潜在主题变量的分配z;其次,用户为了参与讨论,显式地根据话题标签的流行程度γy以及写作主题确定关联的话题标签集合hd;再次,开始写作中的词汇选择,当选择每一个写作词汇时,根据短文本已确定的主题,即依赖后验概率p(y|zdi)选择当前词要对应的潜在话题标签ydi,根据潜在话题标签的主题分布
模型参数估计方法如下:
本发明通过计算语料库的边际概率,在
其中,cwt表示“主题-词汇”分配计数矩阵,cth表示“标签-主题”分配计数矩阵。
即根据词汇的主题先验推断话题标签的后验概率。其中每个词位置潜在话题标签分配的条件概率为:
在狄利克雷分布为多项式分布共轭先验的条件下,用欧拉公式及其变形积分公式展开,推导得到每个此位置潜在主题分配的条件概率为:
其中cwt表示“主题-词汇”计数矩阵,cth表示“标签-主题”计数矩阵。在上述公式中,
“话题标签-主题”分布θ为:
模型通过潜在话题标签对词汇先验主题的依赖建模和对词汇主题的更新生成约束,引入了话题标签作为半监督信息,学习短文本集合层次关系。特别需要指出的是,训练过程所用的文本集合是某一特定话题的文本集合。即经过步骤2得到的文本集合。
步骤5:根据步骤4中模型训练结果,得到集合中话题标签的语义向量表示、所在文本的平均语义向量表示以及话题标签所在文本的词汇向量表示。
其中,话题标签的语义向量表示为θ,当主题个数为5时,θ中关于话题标签i的向量为一个维度为5的归一化后的向量。所在文本的平均语义向量表示,即首先根据文本词汇对应的主题分配,归一化后得到文本的主题向量,之后求所有文本语义向量的平均向量。话题标签所在文本的词汇向量表示即词汇的词频经过tfidf变换后得到的向量。
步骤6:将步骤5中的三个向量表示依次接连起来作为一个话题标签的完整语义表示。此处接连的顺序可以不做要求,因为在聚类算法中,顺序不影响聚类结果。
步骤7:使用kmeans聚类方法对步骤6得出的话题标签的语义特征表示进行聚类,将聚类得到的类别的质心作为子话题输出。
本步骤使用的kmeans算法接受输入量k,指的是聚类输出的类簇数;然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。kmeans算法的基本步骤是:
(1)从n个数据对象任意选择k个对象作为初始聚类中心;
(2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
(3)重新计算每个(有变化)聚类的均值(中心对象);
(4)计算标准测度函数,当满足一定条件,如函数收敛或达到最多迭代次数时,则算法终止;如果条件不满足则回到步骤(2)。
该算法的时间复杂度上界为o(n*k*t),其中t是迭代次数。核心步骤过程如图3所示。
本步骤利用经典算法kmeans对步骤6中得到的话题标签的完整语义表示进行聚类,将聚类得出的每个类别中距离质心最近的话题标签作为子话题;令聚出的类别数目为k,则得到的聚类中心可表示为ci,i=1,...,k。例如其中一部分子话题如下。c1:“#breakingnews,#cnn,#egyptians,#revolution,#jan28,#p2,#cairo,#tahrir,#jan25,#egypt”,c2:“#humanright,#teaparty,#wikileaks,#democracy,#egipto,#usa,#news,#febl,#obama,#mubarak”,c3:“#google,#tahrirsquare,#aje,#elbaradei,#freeayman,#suez,#alexandria,#sidibouzid,#aljazeera,#25jan”。可看出,子话题簇1,描述了革命起初抗议者占领了开罗解放广场的事情,代表性的话题标签说明了时间(#jan25,#jan28),事情发生的地点(#tahrir,#cario,#egypt)以及这次运动表现出的先进性(#breakingnews,#p2)。子话题簇2则体现了“埃及革命”的一些深层原因,比如这次革命的目的(#humanright,#democracy)以及这次革命大家猜测的背后因素(#wikileaks,#usa,#obama)。子话题簇3则体现了“埃及革命”中积极分子被逮捕的子事件,特别是半岛电视台英语频道记者被逮捕(#aje,#aliazeera,#freeayman)。
本发明主要采用机器学习理论和方法对半结构短文本数据进行话题结构建模,为了保证系统的正常运行和一定的运行速度,在具体实施时,要求所使用的计算机平台配备不低于8g的内存,cpu核心数不低于4个且主频不低2.6ghz、显存不低于1gb,linux14.04及以上版本的64位操作系统,并安装jre1.7、jdk1.7以上版本等必备软件环境。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。