基于FrankCopula函数的主题相关性建模方法与流程

文档序号:15615787发布日期:2018-10-09 21:20阅读:3798来源:国知局

本发明属于机器学习的自然语言处理领域,具体涉及一种基于frankcopula函数的主题相关性建模方法。



背景技术:

在机器学习的自然语言处理等领域,主题模型是用来在一系列文档中发现抽象主题的一种统计模型。如果一篇文章有一个中心思想,那么一些特定词语会更频繁的出现。简单而言,主题挖掘就是要找到表达文章中心思想的主题词。主题挖掘的主要原因有文件数量迅速增长,依靠人工的方式很难实现对全部文本信息的主题进行提取,所以将该流程自动化已经势在必行,让机器代替人工去对文本的主题进行提取和整理。

经典的主题模型是d.m.blei在2003年提出的lda(latentdirichletallocation)模型。blei以plsa(lda之前的另一个概率模型)为基础,加上了贝叶斯先验,从而发明了lda算法。lda是一种无监督机器学习模型,可以用来识别语料库中潜在的主题信息,并且假设每个文档都可以表示成若干潜在主题的混合分布。该方法定义文档的生成过程,首先预设一定量的主题且每个主题包含的词汇服从dirichlet分布;然后从主题分布中抽取一个主题,再从上述主题包含的单词分布中抽取一个单词;最后重复上述过程,直至生成一篇文档。

lda的一个经典特征是每个文档的主题分布都是独立的,此假设在某些情况下是不现实的。在文档流中,上一篇文档的主题分布势必会对下一篇的主题分布产生不可忽视的影响。由于frankcopula函数将联合分布和边缘分布结合,可以描述多个随机变量的相关性;其对称性又保证了变量相关性不受变量排列顺序的影响。frankcopula可以作为分析处理多维数据之间相关性的有效工具,所以本发明引入该函数,将主题分布视为随机变量,建立连续文档的主题相关性模型。

具体来说,frankcopula是copula函数族中的一个分支。形象地说,可以把copula叫做“连接函数”或“相依函数”,它是把多个随机变量的联合分布与它们各自的边缘分布连接起来,p维copula的数学表达为:

其中,xi(i=1...p)是第i维随机变量且x~u[0,1]p是变量xi的边缘分布,c是对应的唯一的copula函数,是这p个随机变量的联合分布。

特别地,对于copula族的单因子分支frankcopula,给出如下定义:

其中,u,v是两个随机变量,λ是从0到无穷大的整数使得frankcopula可以表示相关性从独立到均等的两个随机变量。



技术实现要素:

本发明针对现有技术中的不足,提供一种基于frankcopula函数的主题相关性建模方法。针对目前lda模型中文档主题分布不考虑连续文档间的互相影响的问题,引入frankcopula工具来建立相邻文档的主题相关性模型。

为实现上述目的,本发明采用以下技术方案:

一种基于frankcopula函数的主题相关性建模方法,其特征在于,包括如下步骤:

步骤一、随机初始化参数并选取超参数;

步骤二、根据初始化参数和超参数,使用lda模型生成第一篇文档的主题分布和主题词分布;

步骤三、根据第一篇文档的主题分布和主题词分布,结合copula函数计算每一篇文档的主题分布和主题词分布;

步骤四、根据计算的主题分布和主题词分布,对每篇文档的主题和主题词排序,根据概率大小选取文档的主题和主题词输出。

为优化上述技术方案,采取的具体措施还包括:

所述步骤一具体包括:

选取超参数α,β,初始化λ1=μ1=0,对于第d篇文档随机初始化λd~u[0,∞],μd~u[0,∞],表示从0到正无穷的均匀分布中随机选取λd,μd,其中,λd表示控制第d-1篇文档对第d篇文档的文档-主题分布影响的参数,μd表示控制第d-1篇文档对第d篇文档的主题-词分布影响的参数。

所述步骤二具体包括:

使用经典的lda模型生成第一篇文档的主题分布θ1~dir(α)和主题词分布其中,dir(α)表示服从超参数α的dirichlet分布,dir(β)表示服从超参数β的dirichlet分布。

所述步骤三具体包括:

对于第d篇文档的第k个主题,1≤k≤k,k表示主题数:

根据公式生成其中,υd表示第d篇文档的随机向量,表示向量υd对应的第k纬度值,表示向量υd-1对应的第k纬度值,表示的参数为(α,1)的gamma分布的概率密度函数,是关于λd的copula函数,的边缘分布,p表示条件概率,表示影响的概率;

计算其中,表示第d篇文档第k个主题的主题-词分布,表示第d-1篇文档第k个主题的主题-词分布;

计算θd=υd/||υd||l1,其中,θd表示第d篇文档的主题分布,l1表示第一范数。

所述步骤四具体包括:

根据第d篇文档的主题分布θd和主题词分布进行排序,输出文档的主题和主题词。

本发明的有益效果是:首先,根据标准lda模型生成第一篇文档的主题分布概率模型,然后,使用frankcopula函数在前一篇文档的主题分布的基础上生成新的文档主题概率模型,重复上述过程生成多个连续文档的主题分布;对于每个话题,通过狄利克雷分布和混合分布生成主题-词汇概率模型;最后,使用吉布斯取样求解上述概率模型(即先验分布),通过循环不断更新各参数的值,从而使得主题和主题-词分布不断逼近真实概率分布(即后验分布)。针对目前lda模型中文档-主题分布不考虑连续文档间的互相影响的问题,引入frankcopula工具来生成连续文档的主题相关性模型,考虑了前一篇对后一篇文档的主题分布的影响,提高了主题模型的准确度。

附图说明

图1是本发明的总体流程图。

图2是标准lda的概率模型。

图3是本发明提出的流式lda模型。

具体实施方式

现在结合附图对本发明作进一步详细的说明。

如图1所示的模型建立和求解流程,具体包括如下步骤:

步骤1、初始化,选取超参数α,β、λ1=μ1=0,对于每一篇文档d随机初始化λd~u[0,∞],μd~u[0,∞],表示从0到正无穷的均匀分布中随机选取λd,μd,其中,λd表示控制第d-1篇文档对第d篇文档的文档-主题分布影响的参数,μd表示控制第d-1篇文档对第d篇文档的主题-词分布影响的参数。

步骤2、如图2所示,使用经典的lda模型生成第一篇文档的主题分布θ1~dir(α)和主题词分布其中,dir(α)表示服从超参数α的dirichlet分布,dir(β)表示服从超参数β的dirichlet分布。此处,第一篇文档没有前驱文档,其主题和主题词分布不被参数λ,μ影响。

步骤3、如图3所示,对于第d篇文档,2≤d≤d,d表示文档数,进行遍历:

步骤301、对于第d篇文档中每一个主题k,1≤k≤k,k表示主题数:

生成其中,υd表示第d篇文档的随机向量,表示向量υd对应的第k纬度值,表示向量υd-1对应的第k纬度值,表示的参数为(α,1)的gamma分布的概率密度函数,的边缘分布,是关于λd的copula函数,用于连续文档间主题相关性的建模,表示影响的概率。

步骤302、计算服从多维的gamma分布:

其中,p(υdd-1,α,λd)表示υd-1,α,λd对υd影响的概率,ωd,k表示第d篇文档中单词属于第k个主题的次数,n表示单词数。

步骤303、θd=υd/||υd||l1,其中,θd表示第d篇文档的主题分布,l1表示第一范数。

步骤304、结合吉布斯采样算法使用下式更新

其中,表示zd,wd,α,β,μd对影响的概率,表示第d篇文档第k个主题的主题-词分布,表示第d-1篇文档第k个主题的主题-词分布,ψk表示k*v计数矩阵的第k行,v表示词汇库的大小。

步骤305、使用metropolis-hasting方法更新λd,μd。

步骤306、参数的变化值小于阈值则趋于稳定,停止迭代,否则返回步骤304继续迭代。

步骤307、使用公式计算表示第d篇文档中第n个词所属的主题的编号,v表示所有文档的单词数,表示第k个主题属于第d篇文档的概率,表示第d篇文档中单词v属于第k个主题的次数。

步骤4、根据上述步骤输出的分布,对主题和主题词进行降序排序,输出每个文档的主题和主题词。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1