基于商品评论文档集的概念层次创建方法与流程

文档序号:12014824阅读:236来源:国知局
基于商品评论文档集的概念层次创建方法与流程
本发明涉及语义挖掘领域,尤其涉及基于商品评论文档集的概念层次创建方法。

背景技术:
随着社交网络和电子商务的迅速发展,网络和信息系统中产生了大量评论数据。面对庞大的数据集,人们一般难以快速找到其感兴趣的内容,如电子商务系统用户往往需要阅读某一产品大量的用户评论,才能对其某项性能做出相对准确的评价。由于概念层次能提供数据之间的内在相关性,所以其能大幅提高人们分析数据集的效率,发掘其内在价值,在信息检索、文本分类、自动问答等领域有着广阔的应用空间。概念层次是一个分类表,以等级方式对概念进行分类,是本体的一种特殊形式,其仅包含子类关系。构建针对特定文档集的概念分类通常包含3个步骤:1)提取出对于该文档集来说是最具代表性和相关性的概念;2)在确认这些概念后,发掘出这些概念之间的语义关系;3)通过概念之间的语义关系将其有效的组织起来。一般获得文档集关键概念和语义关系之后需要通过恰当的方法去生成最终的层次结构。在语义关系比较明显的情况下,可以采用推理的方法去生成最终结构,但此类方法对于文本本身数量和质量要求较高,在评论数据中无法满足。而其他情况下,则一般采取根据语义距离进行层次聚类的方法。公开号为1669029A的专利文献公开了一种可自一文件集合中自动搜寻概念并自动生成一概念层次结构的方法、系统及计算机程序。该方法包括:自文件集合中抽取特征字符;利用统计方法计算特征字符间的相似度;提炼特征字符的分布频率以使上述相似度计算趋于精确;对特征字符进行语义排歧以解决意义分歧的问题;以经提炼的分布频率及语义排歧后的特征字符为基础,重新计算特征字符的相似度。经再次计算所得的相似度可反映各特征字符间的实际相似程度,藉此,可将相关的特征字符进行聚类形成不同的概念,所得概念排列为一个概念层次结构。该概念层次结构可自动对某一待检索的特定概念产生询问并返回与该概念相关的文件。层次聚类是一种常用的数据聚类方法,其根据一定标准对数据进行层次分解。基本层次聚类方法一般以二叉树的形式输出最终结果,但这样的知识表达方式对于很多应用场景来说显得不恰当。例如在电视机评论数据中有液晶电视、等离子电视和OLED电视三个概念,较符合人类认知的概念分类应该将这三个概念合并到同一个节点下,但通过基本层次聚类算法无法实现。

技术实现要素:
为了能够对数据实现符合人类认知的聚类,本发明提出了一种基于商品评论文档集的概念层次创建方法。一种基于商品评论文档集的概念层次创建方法,包括如下步骤:步骤1,对初始的文档集进行预处理,得到文档矩阵以及关键词表;步骤2,根据文档矩阵以及关键词表建立主题模型,并将每个主题下相关度最高的k个名词作为关键概念;步骤3,对关键概念进行语义关系提取,得到关键概念的距离矩阵;步骤4,根据距离矩阵进行多路凝聚聚类,得到概念层次。k的取值由用户根据需要来确定,一般取值范围在10-15。在概念层次生成时,使用多路凝聚层次聚类组织概念节点,从而构建多叉树形式的概念分类。对初始的文档集进行预处理的步骤如下:步骤1-1,从初始的文档集提取具有评论数据的内容;步骤1-2,对所提取内容进行去停用词和索引处理;步骤1-3,根据索引中词的出现频率对内容进行过滤,并生成相应的文档矩阵和关键词表。某些情况下,一些常见词在文档和用户需求进行匹配时价值并不大,需要彻底从词汇表中去除,这类词称为停用词。常用的生成停用词表的方法就是将词项按照在文档集中出现的频率从高到低排列,然后手工选择那些语义内容与文档主题关系不大的高频词作为停用词。停用词表中的每个词将在索引过程中被忽略。使用停用词表可以大大减小系统所需要存储的倒排记录表的数目。采用分词器进行索引处理。步骤2中,主题模型的建立方法为:步骤2-1,从文档矩阵中得到主题-词矩阵;步骤2-2,由关键词表得到关键名词链表,主题-词矩阵及关键名词链表构成主题模型。其中,关键概念来自于关键名词链表。主题模型通过词项在文档集的共现信息抽取出语义相关的主题集合,并能够将词项空间中的文档变换到主题空间,得到文档在低维空间中的表达。步骤2-1中,得到主题-词矩阵的步骤如下:步骤2-11,读取文档矩阵,并通过预设的参数得到初始的主题模型,并从初始的主题模型得到抽样的文档集,其中预设的参数为文档-主题分布的分布参数以及主题-词分布的分布参数;步骤2-12,根据抽样的文档集与文档矩阵的分布差异来对主题模型进行调整;步骤2-13,将步骤2-12重复8000至12000次,从所得的主题模型得到主题-词分布矩阵,将每个主题下的词按出现概率大小进行排序,从而得到主题-词矩阵。其中利用初始的主题模型进行调整过程为:根据文档-主题分布抽样生成文档-主题矩阵。根据所得的文档-主题矩阵以及主题-词分布抽样生成文档-词分布抽样生成文档-词分布。计算目前参数设置下初始文档集出现的概率。从初始主题模型中得到抽样的文档集,将抽样的文档集与初始的文档集进行对比,根据两者之间的差异对预设参数进行调整。在步骤2-13中,将每个主题下的词按出现概率大小进行排序时,出现概率越大,次序越靠前。步骤2-2中,得到关键名词链表的步骤如下:步骤2-21,读取关键词表,并建立一个初始的关键名词链表,由关键词表向该关键名词链表输入所有关键词,并去除重复的关键词;步骤2-22,对于每个关键词,判定所述关键词在各个句子中的词性,统计各个词性出现的概率,选择出现概率最大的词性作为该词在整个文档集中的词性;步骤2-23,将所有名词词性的关键词作为关键概念储存于关键名词链表中。其中,在步骤2-22中,利用索引阅读器找到含有该关键词的句子,采用分词器分析该关键词在各个句子中的词性并进行统计。步骤3中,语义关系提取的步骤如下:步骤3-1,将全部关键概念组成一个关键概念集合;步骤3-2,遍历各个句子,若包含关键概念,则将其写入一个文件中;步骤3-3,对所有关键概念进行语义消歧;步骤3-4,对于语义消歧后的每一个关键概念,统计其所有语义ID在初始的文档集出现次数,将出现次数最多的语义作为其在初始的文档集中的语义;步骤3-5,根据步骤3-4中所得到的语义计算词典语义距离;步骤3-6,根据所有关键概念对在初始文档中出现的相关性计算其统计语义距离;步骤3-7,将词典语义距离和统计语义距离进行结合得到语义距离,所有关键概念两两之间的语义距离所形成的矩阵作为最终的语义距离矩阵。其中,一个关键概念的语义ID为该关键概念所表达的语义在语义词典中的唯一标识。其中,两个关键概念之间的词典语义距离表示为:其中,n为正实数,用于调整带深度的词典语义距离,d是两个关键概念的公共祖先概念在语义词典中的深度,BSD(c1,c2,T)是两个关键概念在语义词典中的最短距离。两个关键概念之间的统计语义距离表示为:其中和为关键概念c1和c2所对应的上下文向量,和为对应的上下文向量的模。步骤3-3中,对各个关键概念的语义消歧方法如下:步骤a),读取该关键概念在同义词词林的所有语义ID;步骤b),根据语义ID在同义词词林中的顶级分类进行过滤;步骤c),获取所有语义ID的同义词集;步骤d),统计各个同义词在初始的文档集中出现的次数,选择出现次数最多的语义ID作为该关键概念的语义ID。由于同一词语可能存在一词多义的情况,因此通过语义消歧方法确定该词语在文档集中的语义。步骤3-7中,将关键概念的词典语义距离和统计语义距离进行结合的公式为:其中c1和c2为关键概念,T为语义词典中包含c1和c2的概念树,SSD(c1,c2,T)为归一化后的词典语义距离,CD(c1,c2)为归一化后的统计语义距离。其中,归一化后的词典语义距离SDD(c1,c2,T)表达式为:Dmax是基本词典语义距离的可能最大值,其中基本语义距离为两个概念节点在概念树上的最短距离BSD(c1,c2,T),词典语义距离在此基础上考虑其他因素。归一化后的统计语义距离CD(c1,c2)表达式为:CD(c1,c2)=1-CS(c1,c2)。步骤4中,多路凝聚聚类的方法为:步骤4-1,输入所有的关键概念的语义距离矩阵,每个关键概念作为一个概念节点;步骤4-2,从语义距离矩阵中选取语义距离最小的两个概念节点,将两个概念节点合并成新的概念节点;步骤4-3,从关键概念集合中删除掉已合并的概念节点,加入合并后的概念节点,并且更新语义距离矩阵;步骤4-4,重复步骤4-2至4-3直到所有概念节点都已合并到同一个概念节点下,得到最终概念层次;步骤4-5,以XML形式输出最终的概念层次。与传统层次聚类算法不同的是,多路凝聚层次聚类算法在合并两个聚类时有三种不同的合并操作,而传统层次聚类只有一种。额外的合并操作使得输出多叉树成为可能。本发明针对使用基本层次聚类算法只能输出二叉树的问题,提出了一种自动的基于商品评论文档集的概念层次构建方法,在概念层次生成时使用多路凝聚层次聚类来组织概念节点,从而构建多叉树形式的概念层次。本发明的优点包括:(1)在提取语义关系时结合了语义词典中的信息和商品评论文档集中的统计特征,计算出的语义关系更加健壮和真实;(2)使用多路凝聚聚类算法生成最终的概念层次,突破了传统凝聚聚类只能生成二叉树的限制;(3)一种完全自动化的构建方法,在概念层次构建过程中无需任何人工干预。附图说明图1为本发明一个实施例的方法流程图;图2为对文档内容进行去停用词和索引处理的流程图;图3为文档集矩阵和关键词表生成过程;图4为主题-词提取流程图;图5为名词提取流程图;图6为语义消歧流程图;图7a为多路凝聚前的示意图;图7b至7d为多路凝聚聚类3种情况的示意图;图8为关键词表的一个示例图;图9为文档矩阵的一个示例图。具体实施方式现结合附图和实施例对本发明进行详细的解释,本发明方法的流程图如图1所示。该方法分为对商品评论文档集进行预处理、主题模型建模、语义关系提取和多路凝聚聚类四个阶段。步骤1,数据预处理阶段的主要步骤包括:1)从网页形式的原始商品评论文档集中提取出商品评论数据的内容;原始商品评论文档集中可能存在很多无意义的信息,比如各种tag或者一些界面元素,这些在进行概念提取时都是不需要的,因此需要根据特定的模式把评论内容从原始信息中提取出来,以减小概念提取时的计算量和主题模型的可解释性。2)对商品评论数据的内容进行去停用词和索引等处理;处理过程如图2所示,系统首先根据输入读取停用词和用户字典中的词,接着初始化一个分词器,该分词器支持停用词过滤和用户字典功能。然后根据文件夹地址读取文档集内容,对于每一篇文档的内容生成倒排索引,最后将索引保存到输入的索引保存位置中。3)根据在索引中出现的频率对评论中的词进行过滤,并且生成相应的关键词表和文档矩阵;处理过程如图3所示,用户输入包括:索引文件夹地址、关键词出现频率的上限和下限,以及输出的文件夹,输出则为词表文件和文档矩阵文件。处理过程:首先根据索引文件夹地址读取索引的文档内容;接着生成一个与文档数目长度相同的链表a,初始化词语ID为0(即a(0)),然后开始遍历索引中的每一个词语。索引方式为:对于每一个词语,首先统计其在整个文档集中出现的次数,如果超过关键词的次数限制,就对下一个词语进行索引;否则,在关键词表中写入:ID、词语和以及词语出现的次数,接着在文档集中遍历其所有位置,如果出现在文档1中,则在关键词表的a(1)中添加一个ID,遍历完所有位置后ID+1,进入下一个词语的索引。遍历完所有词语之后,将所得的文档矩阵写入到输出文件夹内的文档矩阵文件(即目标位置)中。生成的关键词表如图8所示。输出的关键词表的格式为每一行分为3个部分,中间用空格隔开,第一个部分是词语,第二个部分是词语所对应的词语ID,第三个部分是相应词语出现的总次数。文档矩阵如图9所示,文档矩阵中每一行代表一个文档,每个文档由一串词语的ID组成,词语之间用空格隔开,每行第一个元素表示文档所包含不重复的词语ID数,后面各个部分由词语ID和词语ID的出现次数组成,不同词语ID之间用“:”符号隔开。在得到文档矩阵和关键词表之后进入步骤2。步骤2,根据文档矩阵建立主题模型。主题模型建模阶段包括主题-词提取和名词提取两个子阶段。在进行主题词提取的处理之前首先由用户输入:关键词表地址、文档矩阵地址、预定义的文档主题数目和输出结果的地址;接着进行处理,具体处理过程如图4所示,主要步骤包括:步骤2-11,读取文档矩阵,并通过预设的参数得到初始的主题模型,并从初始的主题模型得到抽样的文档集,其中预设的参数为文档-主题分布的分布参数以及主题-词分布的分布参数;步骤2-12,根据抽样的文档集与文档矩阵的分布差异来对主题模型进行调整;对于文档矩阵中的每一篇文档,对应的抽样文档生成过程如下:对于每篇文档di中的每一个词,从该词对应的主题分布Θi抽样出一个主题zk;对于每个主题zk,从其对应的词语分布中抽样出一个词wij,重复上述步骤直到遍历完文档dj中的所有词语。步骤2-13,根据新的模型重复步骤2-12,直到达到预设的次数,本发明实施例中设置为10000次;步骤2-14,输出主题-词矩阵。在得到主题-词矩阵之后,进行名词提取,得到关键名词链表。提取名词的处理过程如图5所示,方法如下:首先由用户输入:关键词文件地址、倒排索引文件夹地址以及输出结果地址。输出为一个只包含关键名词的文件。处理过程如下:首先读取所有的关键词,并且去掉重复的词;接着初始化索引阅读器,然后对于每一个关键词,根据索引找出包含该关键词的句子,使用分词器对句子进行分词,找出该关键词在句子中的词性,统计各种词性出现的概率,选择出现概率最大的词性作为该关键词在整个文档集中的词性,并且将词性为名词的关键词加入到一个链表(名词链表)中,遍历完所有的关键词后得到的链表即为关键名词链表,最后将关键名词链表输出到输出结果地址中。其中关键名词链表中的所有名词均为关键概念。在得到关键名词链表之后,进入步骤3,对关键概念进行语义关系提取。语义关系提取阶段过程如图6所示,主要步骤包括:步骤3-1,将所有的关键概念输入到一个集合中;步骤3-2,遍历所有的句子,对于每个句子而言,如果其包含关键概念,则将其写入到一个文件中;步骤3-3,对所有的句子进行语义消歧;步骤3-4,对于每一个关键概念,统计其所有语义ID的出现次数,将出现次数最多的语义ID作为该关键概念在文档集中的语义;步骤3-5,根据步骤3-4中所得到的语义ID计算词典语义距离。为计算两个关键概念之间的语义距离,需借助语义词典中的上位词关系。通过这些关系,可能找到两个被标记概念的公共祖先概念。对于两个概念c1、c2,如果在语义词典中可以找到其公共祖先概念c3,那么两个概念词之间带深度的语义距离表示为:c1和c2分别为两个关键概念,T为在语义词典中包含c1和c2的概念树,n为一个正实数,用于调整带深度的语义距离,d为两个关键概念的公共祖先概念在语义词典中的深度,BSD(c1,c2,T)是两个关键概念在语义词典中的最短距离。步骤3-6,根据所有关键概念对在商品评论文档集中出现的相关性计算关键概念的统计语义距离;使用所有主题词作为关键概念的上下文,用其与关键概念出现次数的相关性作为上下文向量的特征,该特征表示为:tfk(w1)是w1在文档dk中的词频,tfavg(w1)是整个文档集中tfk(w1)的平均值,tfstd(w1)是tfk(w1)所有值的标准差。假设c1和c2是两个概念的上下文向量,那么其统计语义的余弦距离(即统计语义距离)表示为:步骤3-7,结合两种语义距离的结果,作为最终的语义距离并输出记录所有关键概念语义距离的距离矩阵。为了结合两种距离,首先将其进行归一化:CD(c1,c2)=1-CS(c1,c2)Dmax是基本词典语义距离的可能最大值。归一化之后,两个关键概念的语义距离表示为:所有关键概念的语义距离组成关键概念。在得到关键概念的语义距离之后,进行步骤4,对关键概念进行多路凝聚聚类。多路凝聚聚类阶段主要包含以下步骤:步骤4-1,输入所有关键概念的距离矩阵;步骤4-2,选取语义距离最小的两个关键概念,并根据其间各种指标的相似性选取合适的合并操作;与传统的层次聚类算法不同的是,多路凝聚聚类算法在合并两个聚类时有三种不同的合并操作,而传统层次聚类只有一种。额外的合并操作使得输出多叉树成为可能。假设需合并的两个聚类为聚类A和聚类B,如图7a所示,则对应三种情况为:1)聚类A和聚类B变成一个新聚类C的子类,如图7b所示。这种情况一般发生于两个聚类之间的距离大于特定阈值时。该情况下的合并与传统凝聚层次聚类中的情况一样。2)聚类A和聚类B的子类变为一个新聚类C的子类,如图7c。这种情况发生于两个聚类之间的距离小于阈值并且其子类平均距离相似,这说明两个聚类的语义接近且具有相近的密度。3)一个聚类变为另一个聚类的子类,如图7d所示,图中聚类B变为聚类A的子类。这种情况说明两个聚类具有较小的距离但是两者的语义密度并不相似。这种情况下则将较大密度的聚类作为另外一个聚类的子类。因为子类平均距离越小,说明子类之间的关系越紧密,密度越大,而在概念分类中,越往上子类之间的距离越大。在本发明中,每个聚类为一个概念节点。为计算聚类间的语义距离及其密度的相似性,需引入以下几个概念:①平均节点距离。对于两个概念c1和c2,其平均节点距离为:ci和cj是对应概念节点的叶节点,m和n分别为c1和c2概念下叶节点的数目,SDD(ci,cj)为叶节点ci和cj之间的语义距离。②子节点距离。对于一个概念节点c1,其子节点距离为:ci和cj是概念节点c1的直接子节点。③平均子节点距离。对于一个概念节点c1,其平均子节点距离为:扩展到两个概念节点c1和c2的情况,则两个概念节点的平均子节点距离为:m和n分别为概念节点c1和c2的直接子节点的数目。④节点距离差异。对于两个概念节点c1、c2的节点距离差异为:DC(c1,c2)=NCDavg(c1,c2)-CCDavg(c1,c2)⑤节点密度差异。对于两个概念节点c1、c2,则节点密度差异为:每一次迭代过程算法都会选取平均节点距离最小的两个节点进行合并。假设这两个节点为概念节点c1和c2,如果DC(c1,c2)>τ,那么这两个概念节点将会按照第一种情况进行合并。τ就是第一种情况里的阈值,大于τ说明两个聚类间的差距仍然过大。如果差距不大,则比较两个概念节点的平均子节点概念距离。如果满足DCD(c1,c2)<σ-1,则算法转入第二种情况,否则转入第三种情况。步骤4-3,从关键概念集合中删除掉已合并的关键概念,加入合并后的概念节点,并且更新距离矩阵;步骤4-4,重复步骤4-2至4-3,直到所有概念节点都已合并到同一个概念节点下;步骤4-5,以XML形式输出最终的概念层次。本发明方法使用多路凝聚聚类算法生成最终的概念层次,突破了传统凝聚聚类只能生成二叉树的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1