CN108710650B - 一种针对论坛文本的主题挖掘方法 - Google Patents
一种针对论坛文本的主题挖掘方法 Download PDFInfo
- Publication number
- CN108710650B CN108710650B CN201810418998.5A CN201810418998A CN108710650B CN 108710650 B CN108710650 B CN 108710650B CN 201810418998 A CN201810418998 A CN 201810418998A CN 108710650 B CN108710650 B CN 108710650B
- Authority
- CN
- China
- Prior art keywords
- words
- sentence
- word
- topic
- reply
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000005065 mining Methods 0.000 title claims abstract description 13
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 230000009193 crawling Effects 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 17
- 239000000126 substance Substances 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 239000004576 sand Substances 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000009412 basement excavation Methods 0.000 abstract 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 7
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 210000004209 hair Anatomy 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种针对论坛文本的主题挖掘方法,所述方法包括以下步骤:步骤1:爬取论坛的数据,利用文本处理手段找出大概率可能是无意义的回复,并做好标记;步骤2:对论坛文本按照句子切割,之后进行分词,根据词性删除无用的词,去停用词;步骤3:对现有的文本根据BBS‑LDA主题模型使用Gibbs Sampling进行参数估计,最终得到属于每个主题可能性最大的词语。本发明对论坛的这些特点,基于LDA提出一种新的主题模型BBS‑LDA,更有效地挖掘论坛文本中的主题,以提高论坛文本主题挖掘的能力。
Description
技术领域
本发明属于文本挖掘领域,尤其涉及概率主题模型。
背景技术
如今,互联网正飞速地发展,网络已经成了网民接收和传播信息的主要途径。通过网络,每个网民都可以在极短的时间内获取到全国各地最新的事件,并实时地对这些事件发表自己的感想,也可以把自己了解到的事件分享给其他人。通过这些文本信息,可以做很多有意义的事情:政府可以通过微博或者论坛,获取人民最关心的民生问题,并做出合理的改进;股民可以通过挖掘股吧里面的讨论信息,了解到哪只股票最热,哪只股票最被网民看好,并对自己的投资策略做出调整;消费者可以通过查看其他用户对商品的评价来对商品有一个客观的了解,并判断这个商品是否适合自己。
如何从海量文本中提取出有价值的信息一直是一件很有挑战的事情。文本不同于一般的数值型数据,表示和处理起来都复杂很多。空间向量模型(Vector Space Model)把文本中的每个词语一个个映射到向量空间,这使得我们可以通过传统的数值型数据挖掘算法来处理文本,不过面对海量数据,会面临维度灾难。TF-IDF等方法利用了词的词频率信息和逆文档频信息,能够实现快速提取文章的关键字,不过单纯以词频度量词的重要性,不够全面,而且不能够处理同义词的情况。近年来,主题模型在文本挖掘中得到了不错的运用,其中最具有代表性的就是潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)。如今,已经有许多针对不同语料特点改进的LDA模型被用在了情感分析,舆情控制,个性化推荐上。
对于论坛文本,因为其本身具有一些结构化信息,使用原始的LDA模型并不能够最大化地利用文本信息来挖掘主题。其次,论坛里面可能会存在大量的短回复和很多水帖,短回复会造成词的稀疏性,水帖会给主题挖掘带来很多噪音,这些因素都极大地影响了LDA在论坛上的建模效果。
发明内容
为了克服现有文本挖掘方法的无法有效挖掘论坛文本中的主题的不足,本发明针对论坛的结构特点,基于LDA提出一种新的主题模型BBS-LDA,更有效地挖掘论坛文本中的主题。
为了解决上述技术问题,本发明提供如下的技术方案:
一种针对论坛文本的主题挖掘方法,所述方法包括以下步骤:
步骤1:爬取论坛的数据,利用文本处理手段找出大概率可能是无意义的回复,并做好标记;
步骤2:对论坛文本按照句子切割,之后进行分词,根据词性删除无用的词,去停用词;
步骤3:对现有的文本根据BBS-LDA主题模型使用Gibbs Sampling进行参数估计,最终得到属于每个主题可能性最大的词语。
进一步,所述步骤3中,所述BBS-LDA主题模型中,BBS-LDA将同一个帖子中的回复聚集在一起,并把回复切分成句;对于属于同一个帖子的句子,其主题是从同一个主题分布采样而来,且句子中的每个词所属的主题和句子的主题一致;同时,每个句子都有一定的概率被采样为无意义的句子,每个词都有一定的概率被采样为背景词,所述背景词与句子的主题无关,且这些概率与发表该回复的用户有关。
再进一步,所述BBS-LDA主题模型的参数估计过程为:
(3.1)采样第p个帖子中第s个句子所对应的标记变量rp,s和句子的主题zp,s公式如下:
当rp,s=1时,句子主题为k的概率计算如下:
其中,Γ()是gamma函数,Γ(x+1)=xΓ(x),表示当前正在采样的句子中的词v属于主题k的个数,是一个向量,一共有二维,表示用户u发表的有意义的句子的个数,表示用户u发表的无意义的句子(水帖)的个数,Su表示用户u所发的句子的数目,是一个向量,一共k维,表示第p个帖子中主题为k的句子的个数。Qp表示第p个帖子中有意义的句子的个数。一共V维,R(v)表示单词v属于无意义词的个数,R表示无意义的词的个数。是一个向量,有V维,表示语料库中每个单词属于主题k的个数。下标带有表示语料库排除当前采样句子的计数;
rp,s=0的概率计算如下:
其中,C表示当前采样句子中无意义词的个数,C(v)表示当前采样句子中的词v属于无意义词的个数;
(3.2)采样句子中的每个词的标记变量t的公式如下:
词x属于背景词的概率计算如下:
词x不属于背景词的概率计算如下:
如果该单词所在的句子对应的标志变量rp,s=1,且zp,s=k
如果该单词所在的句子对应的标志变量rp,s=0
(3.3)当模型收敛的时候,各个单词属于每个主题的概率计算如下:
更进一步,所述步骤1包括以下步骤:
步骤11:通过爬虫爬取论坛中的文本,爬取的内容包括回复的内容,回复的用户,该条回复所对应的帖子的id(主帖也被当成一条回复,回复的用户为楼主);
步骤12:对于字数小于10的回复,使用Jieba分词工具分词,统计高频词,并人工筛选出一份词典。包含词典里面的词的短回复很可能就是无意义的回复,并做好标记;
步骤13:对每个用户遍历其所有回复,通过Simhash找出相似度高的回复,如果相似度高的回复计数大于3,这些回复很有可能是广告或者无意义的回复,并做好标记。
进一步,所述步骤2包括以下步骤:
步骤21:对论坛中的所有回复按照“。”、“!”、“?”和换行进行切割,把长回复分割成一个个句子,句子的作者为原来回复的作者,如果该句子所在的回复在步骤1已经被标记为无意义回复,则该句子也属于无意义的句子。
步骤22:对所有句子使用Jieba分词工具分词,根据词性删除数字、标点、语气词等不包含语义的词性,并删除停用词。
本发明适用于论坛文本。论坛文本特指由一个个帖子组成的文本,通常一个帖子里面的所有回复讨论的都是相似的东西,每条回复都包含回复和内容和回复的作者等信息。通过利用回复的作者的信息和帖子中讨论内容相似的信息,我们可以更好地挖掘文本的主题。
本发明的有益效果表现在:更有效地挖掘论坛文本中的主题,以提高论坛文本主题挖掘的能力。
附图说明
图1是本文提出的BBS-LDA的图模型。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1,一种针对论坛文本的主题挖掘方法,包括以下步骤:
步骤1:爬取论坛的数据,利用一些文本处理手段找出大概率可能是无意义的回复,并做好标记;
步骤1主要是为了获取数据和给模型提供部分监督信息,帮助我们更好地对论坛文本进行建模。论坛的垃圾回复主要有两种,第一种是一些过短回复,基本不包含什么语义,只是为了顶贴或者水帖而发表的回复。第二种是一些推广。
所述步骤1包括以下步骤:
步骤11:通过爬虫爬取论坛中的文本,爬取的内容包括回复的内容,回复的用户,该条回复所对应的帖子的id(主帖也被当成一条回复,回复的用户为楼主);
步骤12:对于字数小于10的回复,使用Jieba分词工具分词,统计高频词,并人工筛选出一份词典。包含词典里面的词的短回复很可能就是无意义的回复,并做好标记;
步骤13:对每个用户遍历其所有回复,通过Simhash找出相似度高的回复,如果相似度高的回复计数大于3,这些回复很有可能是广告或者无意义的回复,并做好标记。
步骤2:对论坛文本按照句子切割,之后进行分词,根据词性删除无用的词,去停用词;
步骤2是文本处理的一般处理过程。论坛文本中的回复有长有短,LDA对短文本效果不太好,我们在这里选择把回复切分成句,每个句子中的词语属于同一个主题。
所述步骤2包括以下步骤:
步骤21:对论坛中的所有回复按照“。”、“!”、“?”和换行进行切割,把长回复分割成一个个句子,句子的作者为原来回复的作者,如果该句子所在的回复在步骤1已经被标记为无意义回复,则该句子也属于无意义的句子。
步骤22:对所有句子使用Jieba分词工具分词,根据词性删除数字、标点、语气词等不包含语义的词性,并删除停用词。
步骤3:对现有的文本根据BBS-LDA主题模型使用Gibbs Sampling进行参数估计,最终得到属于每个主题可能性最大的词语。
所述BBS-LDA主题模型见图1。其生成过程如下:
假设数据集中一共有P个帖子,第p个帖子中一共有Sp个句子,每个句子中的词的数目标记为N,主题数为K,用户数为U。同一个帖子中的句子属于同一个主题分布θ,主题分布θ以α为参数的Dirichlet先验分布中产生。对于每个句子,我们先采样标记变量r,根据r的结果来决定该句子属于无意义的句子还是有意义的句子(r=0为没意义个句子,r=1为有意义的句子)。这个r由二项分布π中采样,对于每个用户,π是不同的,因为有些用户可能水帖比较多,有些用户不太会水帖,这种情况因人而异。如果句子有意义,则其主题Z从主题分布θ中采样。对于句子中的每个词语,根据标记t来判断其为主题词还是背景词(t=0为主题词,t=1为背景词)。t由二项分布η中采样,对于不同用户,η也是不同的。如果该词语为主题词,则该词语从对应句子主题的词分布或者中采样产生,如果该主题为背景词,则从背景词词的词分布中采样产生。主题词词分布由以β为参数的Dirichlet先验分布中产生,背景词词分布由以βb为参数的Dirichlet先验分布中产生,垃圾回复词的词分布由以βr为参数的Dirichlet先验分布中产生。
Gibbs Sampling的推导过程如下:
首先,我们需要推导每个句子属于对应主题的概率。为了简化这个问题,我们可以先忽略句子中的背景词,因为背景词与主题无关。根据图1所示的图模型,我们可以知道整个文本集的生成概率为:
其中,表示主题模型的超参数,这些超参数需要我们凭经验人工进行选择,表示语料的词向量,表示语料每个句子的标记变量,r=1表示该句子是有意义的,与主题相关,r=0表示该句子与主题不相关。是当前采样中每个句子所属的主题向量。
我们可以先看公式(1)的第三项,把第三项展开:
把公式(3)和(4)代入公式(2)之后,我们可以得到:
同理,我们可以得到:
其中,是一个向量,一共有二维,表示用户u发表的有意义的句子的个数,表示用户u发表的无意义的句子(水帖)的个数,Su表示用户u所发的句子的数目。是一个向量,一共k维,表示第p个帖子中主题为k的句子的个数。Qp表示第p个帖子中有意义的句子的个数。一共V维,R(v)表示单词v属于无意义词的个数,R表示无意义的词的个数。
在采样过程中,对于一个句子,我们先采样r,然后根据r判断句子是不是有意义的,如果有意义,从以α为参数的Dirichlet分布中再采样z,否则句子直接属于无意义主题,我们把无意义主题记为zr,则此时P(zr|r=0)=1。
所以,整个文本集生成的概率为:
由此,我们可以开始采样第p个帖子中第s个句子所对应的标记变量rp,s和句子的主题zp,s。
当rp,s=1时,句子主题为k的概率计算如下:
rp,s=0的概率计算如下:
其中,C表示当前采样句子中无意义词的个数,C(v)表示当前采样句子中的词v属于无意义词的个数。
之后,我们对句子中的每个词进行采样(单词计为x,单词的序号为i)。
我们现在考虑文本集的时候不忽略背景词。则文本集的生成概率为:
因为此时句子的主题已经采样好了,所以对于单词,上式中的前两项与单词是否是背景词的概率无关,把它记为(*)。
与式子(5)的推导相同,可以得到:
代入,可得:
词x属于背景词的概率为:
如果该单词所在的句子对应的标志变量rp,s=1,且zp,s=k,同理可得:
如果该单词所在的句子对应的标志变量rp,s=0,同理可得:
等采样收敛之后,因为Dirichlet分布和多项分布共轭,各个隐藏变量的估计值如下:
BBS-LDA主题模型的采样过程如下:
1).随机初始化语料集中每个句子对应的r(r=1表示该句子有意义,与主题相关,r=0表示该句子无意义)。如果句子在步骤1已经被标记过属于无意义的句子,则该句子对应的r=0。如果r=1,则随机初始化该句子的主题k。对于一条回复中的每个词,随机初始化t(t=0表示该词语是背景词,t=1表示该词语是有意义的词)。
2).循环做以下操作,直到收敛:对于每个句子,如果它在步骤1已经被标记过是无意义的句子,则跳过,否则通过公式(11)和公式(12)采样出该句子的新的r和对应的主题。对于句子中的每个词,通过公式(17),(18)和(19)来采样该词对应的t。
3).根据公式(23)计算每个词属于每个主题的概率。
4).对于每个主题,对每个词属于该主题的概率进行排序,取出有可能属于该主题的20个词。
Claims (3)
1.一种针对论坛文本的主题挖掘方法,其特征在于,所述方法包括以下步骤:
步骤1:爬取论坛的数据,利用文本处理手段找出大概率可能是无意义的回复,并做好标记;
步骤2:对论坛文本按照句子切割,之后进行分词,根据词性删除无用的词,去停用词;
步骤3:对现有的文本根据BBS-LDA主题模型使用Gibbs Sampling进行参数估计,最终得到属于每个主题可能性最大的词语;
所述步骤3中,所述BBS-LDA主题模型中,BBS-LDA将同一个帖子中的回复聚集在一起,并把回复切分成句;对于属于同一个帖子的句子,其主题是从同一个主题分布采样而来,且句子中的每个词所属的主题和句子的主题一致;同时,每个句子都有一定的概率被采样为无意义的句子,每个词都有一定的概率被采样为背景词,所述背景词与句子的主题无关,且这些概率与发表该回复的用户有关;
所述BBS-LDA主题模型的参数估计过程为:
(3.1)采样第p个帖子中第s个句子所对应的标记变量rp,s和句子的主题zp,s公式如下:
当rp,s=1时,句子主题为k的概率计算如下:
其中,Γ()是gamma函数,Γ(x+1)=xΓ(x),表示当前正在采样的句子中的词v属于主题k的个数,是一个向量,一共有二维,表示用户u发表的有意义的句子的个数,表示用户u发表的无意义的句子的个数,Su表示用户u所发的句子的数目,是一个向量,一共k维,表示第p个帖子中主题为k的句子的个数,Qp表示第p个帖子中有意义的句子的个数,一共V维,R(v)表示单词v属于无意义词的个数,R表示无意义的词的个数,是一个向量,有V维,表示语料库中每个单词属于主题k的个数,下标带有表示语料库排除当前采样句子的计数;
rp,s=0的概率计算如下:
其中,C表示当前采样句子中无意义词的个数,C(v)表示当前采样句子中的词v属于无意义词的个数;
(3.2)采样句子中的每个词的标记变量t的公式如下:
词x属于背景词的概率计算如下:
词x不属于背景词的概率计算如下:
如果该单词所在的句子对应的标志变量rp,s=1,且zp,s=k
如果该单词所在的句子对应的标志变量rp,s=0
(3.3)当模型收敛的时候,各个单词属于每个主题的概率计算如下:
2.如权利要求1所述的一种针对论坛文本的主题挖掘方法,其特征在于,所述步骤1包括以下步骤:
步骤11:通过爬虫爬取论坛中的文本,爬取的内容包括回复的内容,回复的用户,该条回复所对应的帖子的id,主帖也被当成一条回复,回复的用户为楼主;
步骤12:对于字数小于10的回复,使用Jieba分词工具分词,统计高频词,并人工筛选出一份词典,包含词典里面的词的短回复是无意义的回复,并做好标记;
步骤13:对每个用户遍历其所有回复,通过Simhash找出相似度高的回复,如果相似度高的回复计数大于3,这些回复是广告或者无意义的回复,并做好标记。
3.如权利要求1所述的一种针对论坛文本的主题挖掘方法,其特征在于,所述步骤2包括以下步骤:
步骤21:对论坛中的所有回复按照“。”、“!”、“?”和换行进行切割,把长回复分割成一个个句子,句子的作者为原来回复的作者,如果该句子所在的回复在步骤1已经被标记为无意义回复,则该句子也属于无意义的句子;
步骤22:对所有句子使用Jieba分词工具分词,根据词性删除数字、标点、语气词等不包含语义的词性,并删除停用词。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810418998.5A CN108710650B (zh) | 2018-05-04 | 2018-05-04 | 一种针对论坛文本的主题挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810418998.5A CN108710650B (zh) | 2018-05-04 | 2018-05-04 | 一种针对论坛文本的主题挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108710650A CN108710650A (zh) | 2018-10-26 |
CN108710650B true CN108710650B (zh) | 2021-08-03 |
Family
ID=63868743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810418998.5A Active CN108710650B (zh) | 2018-05-04 | 2018-05-04 | 一种针对论坛文本的主题挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108710650B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051483A (zh) * | 2021-04-26 | 2021-06-29 | 中国建设银行股份有限公司 | 一种帖子热度的计算方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504087A (zh) * | 2014-12-25 | 2015-04-08 | 中国科学院电子学研究所 | 一种基于低秩分解的精细主题挖掘方法 |
CN107885785A (zh) * | 2017-10-17 | 2018-04-06 | 北京京东尚科信息技术有限公司 | 文本情感分析方法和装置 |
CN107885793A (zh) * | 2017-10-20 | 2018-04-06 | 江苏大学 | 一种微博热点话题分析预测方法及*** |
-
2018
- 2018-05-04 CN CN201810418998.5A patent/CN108710650B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504087A (zh) * | 2014-12-25 | 2015-04-08 | 中国科学院电子学研究所 | 一种基于低秩分解的精细主题挖掘方法 |
CN107885785A (zh) * | 2017-10-17 | 2018-04-06 | 北京京东尚科信息技术有限公司 | 文本情感分析方法和装置 |
CN107885793A (zh) * | 2017-10-20 | 2018-04-06 | 江苏大学 | 一种微博热点话题分析预测方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108710650A (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559233B (zh) | 微博中网络新词抽取方法和微博情感分析方法及*** | |
CN106649818B (zh) | 应用搜索意图的识别方法、装置、应用搜索方法和服务器 | |
US9009134B2 (en) | Named entity recognition in query | |
Zhang et al. | Encoding conversation context for neural keyphrase extraction from microblog posts | |
CN105183833B (zh) | 一种基于用户模型的微博文本推荐方法及其推荐装置 | |
CN112131863B (zh) | 一种评论观点主题抽取方法、电子设备及存储介质 | |
CN106126502B (zh) | 一种基于支持向量机的情感分类***及方法 | |
Dey et al. | Emtagger: a word embedding based novel method for hashtag recommendation on twitter | |
CN105787121B (zh) | 一种基于多故事线的微博事件摘要提取方法 | |
CN109255012B (zh) | 机器阅读理解以及减少候选数据集规模的方法、装置 | |
WO2015021937A1 (zh) | 用户推荐方法和装置 | |
CN108763348A (zh) | 一种扩展短文本词特征向量的分类改进方法 | |
CN110162592A (zh) | 一种基于万有引力改进的TextRank的新闻关键词提取方法 | |
CN108108354A (zh) | 一种基于深度学习的微博用户性别预测方法 | |
CN113032557A (zh) | 一种基于频繁词集与bert语义的微博热点话题发现方法 | |
CN106126605A (zh) | 一种基于用户画像的短文本分类方法 | |
CN111026866B (zh) | 一种面向领域的文本信息抽取聚类方法、设备和存储介质 | |
Rosa et al. | Detecting a tweet’s topic within a large number of Portuguese Twitter trends | |
CN114742071A (zh) | 基于图神经网络的汉越跨语言观点对象识别分析方法 | |
Campbell et al. | Content+ context networks for user classification in twitter | |
Lee et al. | Sentiment analysis on online social network using probability Model | |
CN108710650B (zh) | 一种针对论坛文本的主题挖掘方法 | |
Zhang et al. | Spam comments detection with self-extensible dictionary and text-based features | |
Rauniyar | A survey on deep learning based various methods analysis of text summarization | |
CN114048742A (zh) | 文本信息的知识实体和关系抽取方法及文本质量评估方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |