CN104598588B - 基于双聚类的微博用户标签自动生成算法 - Google Patents
基于双聚类的微博用户标签自动生成算法 Download PDFInfo
- Publication number
- CN104598588B CN104598588B CN201510026697.4A CN201510026697A CN104598588B CN 104598588 B CN104598588 B CN 104598588B CN 201510026697 A CN201510026697 A CN 201510026697A CN 104598588 B CN104598588 B CN 104598588B
- Authority
- CN
- China
- Prior art keywords
- word
- ontology
- label
- words
- microblog
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于双聚类的微博用户标签自动生成算法,其特征在于:包括以下步骤:以维基百科为基础,采用双聚类算法构建语义本体;获取微博用户的微博信息并进行预处理,得到词袋模型;利用语义本体从词袋模型中提取词,并对有歧义词进行消歧处理;将消歧后的词映射到维基百科中相应的类别节点上,构造类别子树;针对用户微博内容收集用户标签;采用投票策略,最终生成用户标签。本发明以维基百科为基础,采用双聚类算法构建语义本体,定位微博中文本词语的对应词,对有歧义词进行消歧处理,为词准确对应类别,为用户生成高准确率的标签。
Description
技术领域
本发明涉及社会化搜索技术领域,特别是涉及基于双聚类的微博用户标签自动生成算法,适用于社会化搜索。
背景技术
随着网络技术的发展,互联网在各个应用领域所积累的信息资源飞速增加,而用户逐渐成为信息的主体,由单一的从互联网查询信息、接受信息,到主动为互联网生产信息,在互联网上进行互动。人们通过各种终端随时随地接入社交网络进行娱乐、发表自己的生活状态以及评论一些新闻等等,社交网络已经渗透到人们的生活、学习、工作的方方面面。
“微博”即微博客(MicroBlog)的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组建个人社区,以140字左右的文字更新信息,并实现即时分享。微博作为新兴的社交网络应用,受到了越来越多的人的欢迎,无论是各领域中的名人还是普通的网民,都可以拥有微博账户。据中国互联网信息中心(CNNIC)在2014年7月发布的《第34次中国互联网络发展状况统计报告》中称,截止2014年6月,我国微博用户已达2.75亿。
在微博社区中,用户标签是自定义描述自己职业、兴趣爱好的关键词,是一组具有概括性的词语或词组的列表,每个标签后面都隐藏着一群志同道合的人。用户通过标签,可以找到更多同类,也可以让更多人找到自己。从对方发布的微博中浏览到自己感兴趣的内容,丰富自己信息获取的渠道。微博服务平台通过用户标签,可以更好地了解用户的兴趣和视角,让服务更加个性化,为用户提供更加精准的推荐和广告服务,为自身带来盈利,让用户获得更佳的用户体验。
微博平台提供了用户自定义标签的功能,但由于种种原因,大部分微博用户没有为自己添加标签,或者有部分用户自定义的标签往往过于个性化,有些甚至意义不明。如何利用用户以前发表过的微博信息挖掘相关信息,自动生成用户标签,为用户发现相关群体、微博平台进行个性化推荐乃至进行微博营销等提供技术支持,成为目前研究人员广泛关注的话题。
随着计算机应用需求的增加,本体被广泛应用到计算机科学的众多领域。从概念上讲,本体是共享概念模型的形式化规范说明,即本体实际上是一组共享的具有公共理解的术语,是一个通用的词汇表,可以供需要共享领域内信息的研究人员使用。在进行本体构造时,既有手工构造(很准确,但速度较慢),也有利用聚类分析方法进行半自动构造。但传统聚类方法只能在矩阵的行或者列的某一个方向上进行,仅能发现全局信息。而高维数据矩阵中含有大量局部信息,传统聚类方法不能发现。双聚类算法在数据矩阵的行和列两个方向上同时聚类,聚类结果对应由局部行和列信息组成的任意区域,体现的是高维数据中蕴涵的有价值的局部特征信息。双聚类算法不仅能够有效地聚类出全局信息,而且能够有效发现高维数据矩阵中的局部信息,基于双聚类算法的优点,可以利用该算法结合维基百科,自动构建语义本体知识库,即先通过本体矩阵生成标记矩阵,然后构造候选集合,在行和列两个方向上同时进行聚类,最后得到K个双聚类结果,最后构造语义本体。
维基百科是目前全球最大的网络百科全书,其内容几乎涵盖所有知识领域。维基百科上的每个条目都是一个知识的抽象概括,类似于传统词典中的词语,其对应文章就是该条目的解释说明。文章中包含丰富的语义信息,例如同义词、类别词、歧义词等。同义词即为不同名但同义的词,如“凤梨”与“菠萝”等;类别词为该词所属类别,如“小麦”属于“粮食”、“谷物”等类别;歧义词则为一词多义,如“大学”这个词可能指一种近代高等教育机构、一本著作或一种官职等。
中国期刊“双聚类算法在本体构建中的应用”,《计算机技术与发展》,第23卷第3期,2013.03,提出了在本体构建中运用双聚类算法。
发明内容
为解决现有技术中的不足,本发明提供一种基于双聚类的微博用户标签自动生成算法,解决了目前微博用户不能自动生成用户标签或生成的用户标签不准确的问题。
为了实现上述目标,本发明采用如下技术方案:
一种基于双聚类的微博用户标签自动生成算法,其特征在于:包括以下步骤:
1)以维基百科为基础,采用双聚类算法构建语义本体;
2)获取微博用户的微博信息并进行预处理,得到词袋模型;
3)利用语义本体从词袋模型中提取词,并对有歧义词进行消歧处理;
4)将消歧后的词映射到维基百科中相应的类别节点上,构造类别子树;
5)针对用户微博内容收集用户标签;
6)采用投票策略,最终生成用户标签。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤1),以维基百科为基础,采用双聚类算法构建语义本体:包括如下步骤:
1.1)下载维基百科数据库转储文件;
1.2)对条目的解释进行分词,采用最大正向匹配方法进行分词;
1.3)定义语义本体矩阵M,共有n行n列,n为条目的数量,本体矩阵的行向量为wi=(p1,p2,...,pn),含义为词wi由词p1,p2,...,pn中的若干词解释;列向量为pj=(w1,w2,...,wn),含义为词pj能解释词w1,w2,...,wn中的若干词;
1.4)计算pj对wi的重要度Mi,j,给矩阵M赋值,计算规则为:当pj不能用来解释wi时,Mi,j=0;当pj可以用来解释wi时,Mi,j=TF(j)×ln(n/OF(j)),TF(j)表示词频,为在词wi的解释中词pj出现的次数,OF(j)为解释词wi用到的词pj的数量,ln为以e为底的对数;
1.5)根据本体矩阵M,构造标记矩阵M',在矩阵M中值为0的位置矩阵M'对应位置值为0,矩阵M中值不为0的位置矩阵M'对应位置值为1;
1.6)在标记矩阵M'上构造候选子矩阵集合,得到用于双聚类的子矩阵I×J;
1.7)在语义本体矩阵M中找到对应的子矩阵,运行双聚类算法对候选集合中的子矩阵进行行向量集合的聚类,得到K个双聚类,构建语义本体;
1.8)定义语义本体存储结构,主要包括:(1)本体名称和对应的本体名映射ID号;(2)语义本体列表,用于存放本体的同义词;(3)父本体名的映射ID,父本体内部ID,以及对自身的描述;(4)语义本体的ID,词性,组成部件本体列表,相关本体/类别/描述列表,子本体列表,实例列表,等价本体列表,近似本体列表,反义/相反本体列表;
1.9)通过步骤1.7)构建的语义本体,再利用网络资源充实语义本体。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤2),获取微博用户的微博信息并进行预处理,包括如下步骤:
2.1)获取微博用户信息,包括账户信息和微博内容信息D;
2.2)利用正则表达式过滤掉微博内容文本中有特殊意义的微博字符组合;
2.3)对微博内容中的英文字符统一进行小写化处理;
2.4)使用中文分词组件对文本进行分词处理,得到词袋,在分词的同时标记词性;
2.5)依照中英文停用词表去除词袋中的停用词;
2.6)根据标记的词性筛选出词袋中的名词、动名词,得到词袋模型BW(D)=[bw1,bw2,...,bwn]。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:步骤2.2)中,所述特殊意义的微博字符组合包括“@用户名”、“[表情符号]”和短链接“http://t.cn/*”内容。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤3),利用语义本体从词袋模型中提取词,并对有歧义的词进行消歧处理,包括如下步骤:
3.1)对步骤2)中生成的词袋模型BW(D),建立记录每个词出现次数的词频词典,避免对屡次出现的词重复计算;
3.2)遍历词频词典,对于词bw∈BW(D),在语义本体中进行查找,如果找到了名称与词bw等价的语义本体e,则词bw即为词e;
3.3)如果词bw在语义本体e的等价本体列表中,则用词e替换词bw;
3.4)如果词bw在语义本体e的相关本体列表中,则词bw是多义词,需要利用语义本体矩阵结合微博内容语境词进行消歧处理;
3.5)将消歧后词bw对应语义本体名称加入词袋模型BW(D)中;
3.6)如果没有找到相对应的本体,说明该词在维基百科中是语义不明显的条目,将词bw删除;
3.7)判断词频词典中是否所有词语都处理完毕,如是,则结束遍历;如否,重复步骤3.2)-3.6),得到词集合E(D)=[e1,e2,...,em],m≤n。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤4),将消歧后的词集合映射到维基百科中相应的类别节点上,构造类别子树,包括如下步骤:
4.1)对步骤3)得到的词集合E(D)=[e1,e2,...,em],m≤n的每一个词,在词语义本体中找到词所对应的类别ID,此为第一层类别集合,标记为Cat1(D),再从Cat1(D)里所有类别成员的页面中找到分别所属的类别,此为第二层类别集合,标记为Cat2(D),依次类推;设定类别子树最大层数为L,根据给定的层次深度L,不断延伸类别层次至高层;
4.2)对于词每一个层次类别ID,在语义本体里找到对应本体名称并过滤;
4.3)将过滤后的每个类别名称加到对应的Catl(D),并在语义本体中找到高一层的类别ID;
4.4)若层次深度没有达到要求,则转4.2),直到满足深度要求;
4.5)判断词集合E(D)=[e1,e2,...,em],m≤n中的所有词是否处理完毕,如否,则执行步骤4.1)-4.4),从而构造类别子树。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤5),针对用户微博内容收集用户标签,对于一条微博D,步骤包括:
5.1)针对步骤4)得到的L个类别集Cat1(D),Cat2(D),...,CatL(D),输入层次类别权重系数b(b>1),创建标签词典T,键为词,值为权重,初始值为空;
5.2)遍历步骤3)得到的词集合E(D),对于e∈E(D),如果以e为名称的标签不存在于标签词典T中,则将e作为键存入标签词典T,初始值为1,即T[e]=1,否则T[e]=T[e]+1;
5.3)初始化当前所在的类别层l=1;
5.4)遍历各层次类别集Catl(D),对于类别c∈Catl(D),如果以类别c为名称的标签不存在于标签词典T里,则加入标签字典T,权重初始值为T[c]=1/bl(b>1),否则修改原有权重值,T[c]=T[c]+1/bl;
5.5)如果l<L,L为类别子树的最大层数,令l=l+1,转至步骤5.4),若达到类别子树的最大层数L,则结束;经过上述步骤,输出的标签词典T即为通过一条微博发现的用户标签及其权重;
5.6)将标签词典T作为用户下一条微博的初始值,重复步骤2)-5)操作进行标签收集,直到最终为用户的所有微博都进行了标签收集。
前述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述6)采用投票策略,最终生成用户标签,包括如下步骤:
6.1)在确定最终的用户标签时,不能选用人物角色和类别相关的词作为用户标签,选择上一层解释的词作为标签;
6.2)取标签词典T中值排名前2N位的标签进行处理,删除人物角色并对相关类别的标签进行合并处理,N为要给用户显示的标签数量;
6.3)取标签词典T中前N个标签作为微博用户的标签
本发明所达到的有益效果:本发明以维基百科为基础,采用双聚类算法构建语义本体,定位微博中文本词语的对应条目,对有歧义条目进行消歧处理,为条目准确对应类别,为用户生成高准确率的标签。
附图说明
图1基于双聚类的微博用户标签自动生成算法流程图;
图2利用维基百科文件构建语义本体流程图;
图3用户微博信息预处理流程图;
图4提取词并对有歧义词进行消歧处理流程图;
图5生成词类别子树流程图;
图6用户微博标签收集流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,基于双聚类的微博用户标签自动生成算法,以维基百科为基础,采用双聚类算法构建语义本体,定位微博中文本词语的对应词,对有歧义词进行消歧处理,为词准确对应类别,为用户生成高准确率的标签。
本发明主要包括以下步骤:
1)以维基百科为基础,采用双聚类算法构建语义本体;
2)获取微博用户的微博信息并进行预处理,得到词袋模型;
3)利用语义本体从词袋模型中提取词,并对有歧义词进行消歧处理;
4)将消歧后的词映射到维基百科中相应的类别节点上,构造类别子树;
5)针对用户微博内容收集用户标签;
6)采用投票策略,最终生成用户标签。
步骤1),以维基百科为基础,采用双聚类算法构建语义本体:如图2所示,具体包括如下步骤:
1.1)下载维基百科数据库转储文件;
1.2)对转储文件条目的解释进行分词,采用最大正向匹配方法进行分词;
1.3)定义语义本体矩阵M,共有n行n列,n为条目的数量,本体矩阵的行向量为wi=(p1,p2,...,pn),含义为词wi由词p1,p2,...,pn中的若干词解释;列向量为pj=(w1,w2,...,wn),含义为词pj能解释词w1,w2,...,wn中的若干词;利用列向量pj求出能解释若干词wi的词pj的集合,也可求得被若干词pj共同解释过的词wi的集合;
1.4)计算pj对wi的重要度Mi,j,给矩阵M赋值,计算规则为:当pj不能用来解释wi时,则Mi,j=0;当pj可以用来解释wi时,则Mi,j不为0,此时Mi,j的取值为pj在wi的整个解释空间的重要度,利用公式Mi,j=TF(j)×ln(n/OF(j))来计算,其中,TF(j)表示词频,指在词wi的解释中词pj出现的次数,OF(j)为解释词wi用到的词pj的数量,ln为以e为底的对数;词频即词出现的次数,条目是唯一的,但是在解释条目时,有可能某个词会出现多次。
1.5)根据本体矩阵M,构造一个相对应的标记矩阵M',在矩阵M中值为0的位置矩阵M'也为0,矩阵M中值不为0的位置矩阵M'设置为1;
1.6)在标记矩阵M'上构造候选矩阵集合:利用列向量pj求得被不同词pj共同解释过的词wi的集合;利用被2个不同的词pj解释过的词wi的分类集合,求出被3个或4个不同的词pj解释过的词wi的分类集合;再以此为基础,求得被5个至8个不同词pj解释过的词wi的分类集合;不失一般性,一个词会被2个以上的词来解释,选择16个作为上限;通过以上步骤,求得候选集合词pj个数从2到16的集合,设这样的集合中w(行)的个数是I,p(列)的个数是J,那么I×J的子矩阵就是候选矩阵,得到用于双聚类的子矩阵I×J;
1.7)在语义本体矩阵M中找到对应的子矩阵,运行双聚类算法对候选集合中的子矩阵进行行向量集合的聚类,得到K个双聚类,构建语义本体;其中包含有重叠结构的双聚类;双聚类重叠表示对不同本体的解释有重叠,从本质上讲就是这些本体相似或相关;针对有重叠的双聚类结果采用重用技术,即重叠的双聚类结果中包含的元素同时属于不同的本体;本发明双聚类构建语义本体的算法采用背景技术中文献公开的方法。
1.8)定义语义本体存储结构,主要包括:(1)本体名称(Ontology Name)和其对应的本体名映射ID号(Ontology Name Mapping ID);(2)语义本体(SubOfClass)列表,对应同义词概念;(3)父本体名的映射ID(Parent Ontology Name Mapping ID),一个父本体内部ID(Parent Ontology Internal ID),以及对自身的描述(Descriptor);(4)语义本体的ID(Ontology Internal ID),词性(PartOfSpeech),组成部件本体列表(Component list),相关本体/类别/描述列表(Associate Class list),子本体列表(SubClass list),实例列表(Instance list),等价本体列表(Equivalence Ontology list),近似本体列表(Approximate Ontology list),反义/相反本体列表(Antisense/Opposite Ontologylist)等部分;语义本体采用红黑树结合单链表的模式存储;
1.9)通过步骤1.7)构建的语义本体,再利用网络资源充实语义本体。
步骤2),获取微博用户的微博信息并进行预处理,如图3所示,包括如下步骤:
2.1)获取微博用户信息,包括账户信息和微博内容信息D;
2.2)利用正则表达式过滤掉文本中有特殊意义的微博字符组合,如“@用户名”、“[表情符号]”和短链接“http://t.cn/*”等内容,这些字符串在字面意义上与微博信息本身无直接联系;
2.3)对微博内容中的英文字符统一进行小写化处理;
2.4)使用中文分词组件对文本进行分词处理,得到词袋(Bag-words),在分词的同时标记词性;
2.5)依照常用的中英文停用词表去除词袋中的停用词;
2.6)根据标记的词性筛选出词袋中具有较强语义的名词、动名词,得到词袋模型BW(D)=[bw1,bw2,...,bwn],其中BW(D)是一个多重集合,同一个词可以出现多次,因此使用方括号而不是花括号标记。
步骤3),利用语义本体从词袋模型中提取词,并对有歧义词进行消歧处理,如图4所示,包括如下步骤:
3.1)对步骤2)中生成的词袋模型BW(D),建立一个记录每个词出现次数的词频词典,避免之后在同一语境中对屡次出现的同一个词进行重复计算,并利用语义本体对所有词进行处理;
3.2)遍历词频词典,对于词bw∈BW(D),在语义本体中进行查找,如果找到了名称与词bw相同的语义本体e,则词bw即为词e;
3.3)如果词bw在语义本体e的等价本体列表中,则用词e替换词bw;
3.4)如果词语bw在语义本体e的相关本体列表中,则词bw是多义词,需要利用语义本体矩阵结合微博内容语境词进行消歧处理;消岐处理为利用语义本体,结合微博内容上下文语境、所属类别等特征,选取最满足当前词义的词;
3.5)将消歧后词bw对应语义本体名称加入词袋模型BW(D);
3.6)如果没有找到相对应的本体,说明该词在维基百科中是语义不明显的条目,将词bw删除;
3.7)判断词频词典中是否所有词语都处理完毕,如是,则结束遍历;如否,重复步骤3.2)-3.6),得到词集合E(D)=[e1,e2,...,em],m≤n;
步骤4),将消歧后的词映射到维基百科中相应的类别节点上,构造类别子树,如图5所示,包括如下步骤:
4.1)对步骤3)得到的词集合E(D)=[e1,e2,...,em],m≤n的每一个词,在词语义本体中找到词所对应的类别ID,此为第一层类别集合,标记为Cat1(D),再从Cat1(D)里所有类别成员的页面中找到分别所属的类别ID,此为第二层类别集合,标记为Cat2(D),依次类推;设定类别子树最大层数为L,从而根据给定的层次深度L,不断延伸类别层次至高层;
4.2)对于每一个层次类别ID,在语义本体里找到对应本体名称,过滤掉表示年份的数字、后缀含有如“分类”、“名词”等不适合作为用户标签的词;
4.3)过滤后的每个类别名称加到对应的Catl(D),并在语义本体中找到高一层的类别ID;
4.4)若层次深度没有达到要求L,则转4.2),直到满足深度要求;
4.5)判断词集合E(D)=[e1,e2,...,em],m≤n中的所有词是否处理完毕,如否,则执行步骤4.1)-4.4),从而构造类别子树,各层次类别集为Cat1(D),Cat2(D),...,CatL(D)。
步骤5),针对用户微博内容收集用户标签,如图6所示,对于一条微博D,步骤包括:
5.1)针对步骤4)得到的各层次类别集Cat1(D),Cat2(D),...,CatL(D),输入层次类别权重系数b(b>1),创建标签词典T,键为词语,值为权重,初始值为空;
5.2)遍历步骤3)得到的词集合E(D),对于e∈E(D),如果以e为名称的标签不存在于标签词典T中,则将e作为键存入标签词典T,初始值为1,即T[e]=1,否则T[e]=T[e]+1;
5.3)初始化当前所在的类别层l=1;
5.4)遍历各层次类别集Catl(D),对于类别c∈Catl(D),如果以类别c为名称的标签不存在于标签词典T里,则加入标签字典T,权重初始值为T[c]=1/bl(b>1),否则修改原有权重值,T[c]=T[c]+1/bl;
在这里,权重的累加值1/bl与类别子树的层次呈反比关系,也就是说,把较大的权重给子树的根部(代表比较具体的类别),把较小的权重给子树的叶子(代表比较宽泛的类别);
在维基百科中各条目分支结构是不完全相同的,同一个类别名称c可能出现在一棵子树的不同层次,所以某个类别名称c的标签的最终排名依赖于该类别在各个层次出现的加权总和;假设类别权重系数b=2,如某个类别名称c在第二层出现4次,在第三层出现5次,那么它的权重是:
2×(1/b4)+3×(1/b5)=2×(1/24)+3×(1/25)=0.125+0.09375=0.21875;
5.5)如果l<L(L为类别子树的最大层数),那么令l=l+1,转至步骤5.4),若达到类别子树的最大深度L,则结束;经过上述步骤,输出的标签词典T即为通过一条微博发现的用户标签及其权重;
5.6)将标签词典T作为用户下一条微博的初始值,重复步骤2)-5)操作进行标签收集,直到最终为用户的所有微博都进行了标签收集。
步骤6)采用投票策略,最终生成用户标签:
所谓投票策略,类似于投票选举,得票多的胜出。这里是标签权重高的排在前面,实际上就是对标签按照权重进行排序处理。
6.1)在确定最终的用户标签时,要注意以下两种情况:一是人物角色,如“洪七公”,不适合作为标签,倾向于采用它们的上一层“射雕英雄传角色”;二是类别非常相关的词,如“线性表”和“二叉树”,针对这种情况,应该选择它们的上一层“数据结构”作为标签;
6.2)取标签词典T中值排名前2N(本实施例N取值10)位的标签进行处理,删除人物角色并对相关类别的标签进行合并处理;
6.3)最后,取标签词典T中前10个标签作为微博用户的标签。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (7)
1.一种基于双聚类的微博用户标签自动生成算法,其特征在于:包括以下步骤:
1)以维基百科为基础,采用双聚类算法构建语义本体;
2)获取微博用户的微博信息并进行预处理,得到词袋模型;
3)利用语义本体从词袋模型中提取词,并对有歧义词进行消歧处理;
4)将消歧后的词映射到维基百科中相应的类别节点上,构造类别子树;
5)针对用户微博内容收集用户标签;
6)采用投票策略,最终生成用户标签;
所述步骤1),以维基百科为基础,采用双聚类算法构建语义本体:包括如下步骤:
1.1)下载维基百科数据库转储文件;
1.2)对条目的解释进行分词,采用最大正向匹配方法进行分词;
1.3)定义语义本体矩阵M,共有n行n列,n为条目的数量,本体矩阵的行向量为wi=(p1,p2,...,pn),含义为词wi由词p1,p2,...,pn中的若干词解释;列向量为pj=(w1,w2,...,wn),含义为词pj能解释词w1,w2,...,wn中的若干词;
1.4)计算pj对wi的重要度Mi,j,给矩阵M赋值,计算规则为:当pj不能用来解释wi时,Mi,j=0;当pj可以用来解释wi时,Mi,j=TF(j)×ln(n/OF(j)),TF(j)表示词频,为在词wi的解释中词pj出现的次数,OF(j)为解释词wi用到的词pj的数量,ln为以e为底的对数;
1.5)根据本体矩阵M,构造标记矩阵M',在矩阵M中值为0的位置矩阵M'对应位置值为0,矩阵M中值不为0的位置矩阵M'对应位置值为1;
1.6)在标记矩阵M'上构造候选子矩阵集合,得到用于双聚类的子矩阵I×J;
1.7)在语义本体矩阵M中找到对应的子矩阵,运行双聚类算法对候选集合中的子矩阵进行行向量集合的聚类,得到K个双聚类,构建语义本体;
1.8)定义语义本体存储结构,主要包括:(1)本体名称和对应的本体名映射ID号;(2)语义本体列表,用于存放本体的同义词;(3)父本体名的映射ID,父本体内部ID,以及对自身的描述;(4)语义本体的ID,词性,组成部件本体列表,相关本体/类别/描述列表,子本体列表,实例列表,等价本体列表,近似本体列表,反义/相反本体列表;
1.9)通过步骤1.7)构建的语义本体,再利用网络资源充实语义本体。
2.根据权利要求1所述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤2),获取微博用户的微博信息并进行预处理,包括如下步骤:
2.1)获取微博用户信息,包括账户信息和微博内容信息D;
2.2)利用正则表达式过滤掉微博内容文本中有特殊意义的微博字符组合;
2.3)对微博内容中的英文字符统一进行小写化处理;
2.4)使用中文分词组件对文本进行分词处理,得到词袋,在分词的同时标记词性;
2.5)依照中英文停用词表去除词袋中的停用词;
2.6)根据标记的词性筛选出词袋中的名词、动名词,得到词袋模型BW(D)=[bw1,bw2,...,bwn]。
3.根据权利要求2所述的一种基于双聚类的微博用户标签自动生成算法,其特征是:步骤2.2)中,所述特殊意义的微博字符组合包括“@用户名”、“[表情符号]”和短链接“http://t.cn/*”内容。
4.根据权利要求1所述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤3),利用语义本体从词袋模型中提取词,并对有歧义的词进行消歧处理,包括如下步骤:
3.1)对步骤2)中生成的词袋模型BW(D),建立记录每个词出现次数的词频词典,避免对屡次出现的词重复计算;
3.2)遍历词频词典,对于词bw∈BW(D),在语义本体中进行查找,如果找到了名称与词bw等价的语义本体e,则词bw即为词e;
3.3)如果词bw在语义本体e的等价本体列表中,则用词e替换词bw;
3.4)如果词bw在语义本体e的相关本体列表中,则词bw是多义词,需要利用语义本体矩阵结合微博内容语境词进行消歧处理;
3.5)将消歧后词bw对应语义本体名称加入词袋模型BW(D)中;
3.6)如果没有找到相对应的本体,说明该词在维基百科中是语义不明显的条目,将词bw删除;
3.7)判断词频词典中是否所有词语都处理完毕,如是,则结束遍历;如否,重复步骤3.2)-3.6),得到词集合E(D)=[e1,e2,...,em],m≤n。
5.根据权利要求1所述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤4),将消歧后的词集合映射到维基百科中相应的类别节点上,构造类别子树,包括如下步骤:
4.1)对步骤3)得到的词集合E(D)=[e1,e2,...,em],m≤n的每一个词,在词语义本体中找到词所对应的类别ID,此为第一层类别集合,标记为Cat1(D),再从Cat1(D)里所有类别成员的页面中找到分别所属的类别,此为第二层类别集合,标记为Cat2(D),依次类推;设定类别子树最大层数为L,根据给定的层次深度L,不断延伸类别层次至高层;
4.2)对于词每一个层次类别ID,在语义本体里找到对应本体名称并过滤;
4.3)将过滤后的每个类别名称加到对应的Catl(D),并在语义本体中找到高一层的类别ID;
4.4)若层次深度没有达到要求,则转4.2),直到满足深度要求;
4.5)判断词集合E(D)=[e1,e2,...,em],m≤n中的所有词是否处理完毕,如否,则执行步骤4.1)-4.4),从而构造类别子树。
6.根据权利要求1所述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述步骤5),针对用户微博内容收集用户标签,对于一条微博D,步骤包括:
5.1)针对步骤4)得到的L个类别集Cat1,Cat2,...,CatL,输入层次类别权重系数b(b>1),创建标签词典T,键为词,值为权重,初始值为空;
5.2)遍历步骤3)得到的词集合E(D),对于e∈E(D),如果以e为名称的标签不存在于标签词典T中,则将e作为键存入标签词典T,初始值为1,即T[e]=1,否则T[e]=T[e]+1;
5.3)初始化当前所在的类别层l=1;
5.4)遍历各层次类别集Catl,对于类别c∈Catl,如果以类别c为名称的标签不存在于标签词典T里,则加入标签字典T,权重初始值为T[c]=1/bl(b>1),否则修改原有权重值,T[c]=T[c]+1/bl;
5.5)如果l<L,L为类别子树的最大层数,令l=l+1,转至步骤5.4),若达到类别子树的最大层数L,则结束;经过上述步骤,输出的标签词典T即为通过一条微博发现的用户标签及其权重;
5.6)将标签词典T作为用户下一条微博的初始值,重复步骤2)-5)操作进行标签收集,直到最终为用户的所有微博都进行了标签收集。
7.根据权利要求1所述的一种基于双聚类的微博用户标签自动生成算法,其特征是:所述6)采用投票策略,最终生成用户标签,包括如下步骤:
6.1)在确定最终的用户标签时,不能选用人物角色和类别相关的词作为用户标签,选择上一层解释的词作为标签;
6.2)取标签词典T中值排名前2N位的标签进行处理,删除人物角色并对相关类别的标签进行合并处理,N为要给用户显示的标签数量;
6.3)取标签词典T中前N个标签作为微博用户的标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510026697.4A CN104598588B (zh) | 2015-01-19 | 2015-01-19 | 基于双聚类的微博用户标签自动生成算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510026697.4A CN104598588B (zh) | 2015-01-19 | 2015-01-19 | 基于双聚类的微博用户标签自动生成算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598588A CN104598588A (zh) | 2015-05-06 |
CN104598588B true CN104598588B (zh) | 2017-08-11 |
Family
ID=53124373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510026697.4A Expired - Fee Related CN104598588B (zh) | 2015-01-19 | 2015-01-19 | 基于双聚类的微博用户标签自动生成算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598588B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373584A (zh) * | 2015-10-14 | 2016-03-02 | 北京乐动卓越科技有限公司 | 用户标签管理方法、用户确定方法和云端服务器 |
CN105373531B (zh) * | 2015-12-09 | 2018-05-22 | 微梦创科网络科技(中国)有限公司 | 一种基于社交网络的短话题文本识别方法及装置 |
CN106874266A (zh) * | 2015-12-10 | 2017-06-20 | 中国电信股份有限公司 | 用户画像方法和用于用户画像的装置 |
CN106886543B (zh) * | 2015-12-16 | 2020-01-17 | 清华大学 | 结合实体描述的知识图谱表示学习方法和系统 |
CN107491554B (zh) * | 2017-09-01 | 2018-12-04 | 北京神州泰岳软件股份有限公司 | 文本分类器的构建方法、构建装置及文本分类方法 |
CN107578292B (zh) * | 2017-09-19 | 2020-10-16 | 上海财经大学 | 一种用户画像构建系统 |
CN107798624B (zh) * | 2017-10-30 | 2021-09-28 | 北京航空航天大学 | 一种软件问答社区中的技术标签推荐方法 |
CN107798141B (zh) * | 2017-11-24 | 2021-07-20 | 广州数说故事信息科技有限公司 | 一种基于统计指标的迭代运算的确定用户标签方法 |
CN107992542A (zh) * | 2017-11-27 | 2018-05-04 | 中山大学 | 一种基于主题模型的相似文章推荐方法 |
CN108052589A (zh) * | 2017-12-11 | 2018-05-18 | 福建中金在线信息科技有限公司 | 一种图文展示的方法、装置及存储介质 |
CN108427769B (zh) * | 2018-03-29 | 2021-10-08 | 苏州大学 | 一种基于社交网络的人物兴趣标签提取方法 |
CN109857866B (zh) * | 2019-01-14 | 2021-05-25 | 中国科学院信息工程研究所 | 一种面向事件查询建议的关键词抽取方法和事件查询建议生成方法及检索系统 |
CN110688461B (zh) * | 2019-09-30 | 2021-08-06 | 中国人民解放军国防科技大学 | 一种综合多源知识的在线文本类教育资源标签生成方法 |
CN111274827B (zh) * | 2020-01-20 | 2021-05-28 | 南京新一代人工智能研究院有限公司 | 一种基于词袋多目标学习的后缀翻译方法 |
CN114119057B (zh) * | 2021-08-10 | 2023-09-26 | 国家电网有限公司 | 用户画像模型的构建系统 |
CN114237460B (zh) * | 2021-10-14 | 2024-01-30 | 北京淘友天下科技发展有限公司 | 标签显示方法、装置、终端、存储介质及计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455578A (zh) * | 2013-08-23 | 2013-12-18 | 华南师范大学 | 一种基于关联规则和双聚类的航空客户数据挖掘方法 |
CN103544242A (zh) * | 2013-09-29 | 2014-01-29 | 广东工业大学 | 面向微博的情感实体搜索系统 |
CN103577549A (zh) * | 2013-10-16 | 2014-02-12 | 复旦大学 | 一种基于微博标签的人群画像系统和方法 |
-
2015
- 2015-01-19 CN CN201510026697.4A patent/CN104598588B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455578A (zh) * | 2013-08-23 | 2013-12-18 | 华南师范大学 | 一种基于关联规则和双聚类的航空客户数据挖掘方法 |
CN103544242A (zh) * | 2013-09-29 | 2014-01-29 | 广东工业大学 | 面向微博的情感实体搜索系统 |
CN103577549A (zh) * | 2013-10-16 | 2014-02-12 | 复旦大学 | 一种基于微博标签的人群画像系统和方法 |
Non-Patent Citations (1)
Title |
---|
基于社会化网络标签的搜索系统设计;张钰;《电子测试》;20140613(第12期);38-40 * |
Also Published As
Publication number | Publication date |
---|---|
CN104598588A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598588B (zh) | 基于双聚类的微博用户标签自动生成算法 | |
US10997370B2 (en) | Hybrid classifier for assigning natural language processing (NLP) inputs to domains in real-time | |
Khanday et al. | Detecting twitter hate speech in COVID-19 era using machine learning and ensemble learning techniques | |
CN109508414B (zh) | 一种同义词挖掘方法及装置 | |
CN102163198B (zh) | 提供新词或热词的方法及系统 | |
CN106709040B (zh) | 一种应用搜索方法和服务器 | |
CN105528437B (zh) | 一种基于结构化文本知识提取的问答系统构建方法 | |
CN110909164A (zh) | 一种基于卷积神经网络的文本增强语义分类方法及系统 | |
US8719353B2 (en) | Systems and methods for visual messaging | |
Jafarpour et al. | Filter, rank, and transfer the knowledge: Learning to chat | |
CN107239512B (zh) | 一种结合评论关系网络图的微博垃圾评论识别方法 | |
CN109992784B (zh) | 一种融合多模态信息的异构网络构建和距离度量方法 | |
CN105630884A (zh) | 一种微博热点事件的地理位置发现方法 | |
Mangal et al. | Analysis of users’ interest based on tweets | |
Suchdev et al. | Twitter sentiment analysis using machine learning and knowledge-based approach | |
CN107153687B (zh) | 一种社交网络文本数据的索引方法 | |
Chen et al. | From symbols to embeddings: A tale of two representations in computational social science | |
CN103488637A (zh) | 一种基于动态社区挖掘进行专家检索的方法 | |
CN110110220A (zh) | 融合社交网络和用户评价的推荐模型 | |
Putra et al. | Sentiment Analysis on Social Media with Glove Using Combination CNN and RoBERTa | |
Mechti et al. | A decision system for computational authors profiling: From machine learning to deep learning | |
CN114443846A (zh) | 一种基于多层级文本异构图的分类方法、装置及电子设备 | |
Delgado et al. | Person name disambiguation in the web using adaptive threshold clustering | |
Sun et al. | A hybrid approach to news recommendation based on knowledge graph and long short-term user preferences | |
Wang et al. | Sentiment processing of social media information from both wireless and wired network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170811 Termination date: 20210119 |