一种社交网络文本数据的索引方法与流程

文档序号:11234157阅读:373来源:国知局
一种社交网络文本数据的索引方法与流程

本发明涉及索引技术领域,尤其涉及一种社交网络文本数据的索引方法。



背景技术:

自互联网的发展从web1.0步入web2.0的新时代后,各种各样的由用户主导而生成的内容互联网产品随之发展起来,如博客、rss等。在线社交网络服务(socialnetworkingservice,sns)发展成为网络上最受欢迎的应用。各种在线社交网络服务网站都出现在人们眼前,如twitter,facebook,新浪微博等。在现实世界中,人们通过结识更多的人以扩展自己的社交圈,更优更广的社交关系往往是一个人自身价值与自我发展的关键。而在这些在线社交网络中,用户可以发布自己的状态或者了解最近的好友状态,或者分享给他人生活体验,与好友互发消息、照片及视频等。这弥补了由于身在异地或者其他原因无法面对面沟通交流的遗憾,在线社交网络现在提供一种新兴又非常普适的交友方式,依靠其真实性、便利性、可玩性以及稳定性、方便熟人朋友间的沟通、也为陌生人之间提供了认识的桥梁等特点得到了人们的认可和青睐。定位技术的发展应用,并且又结合gis地理信息系统,确定用户是基于地理的位置服务(locationbasedservice,lbs)也快速发展开来。社交网站引入用户主动签到机制,并适当整合用户位置信息与社交信息,可在签到行为的基础上提供后续有价值的服务。

尽管社交网站实现了各种各样技术特点的功能,但是它们主要的“骨干”是一组组可见的个人文本或者图片等信息。这些信息是用户唯一可以自己输入的。一个人加入一个社交网络后,会被要求填写包含一系列问题的表单,通常包含一些特有的描述,如年龄、地址、兴趣和自我介绍。大多数网站还鼓励用户上传个人照片。有些网站允许用户提交一些多媒体文件或者修改个人基本信息来提升个人账号的形象。不同的社交网站的用户能见度情况也是不一样的。默认情况下,这些用户信息都可以被查看,但是也存在一些社交网站是收费查看,或者是只对好友开放查看,或者是只允许其他人查看部分的信息。由于在可见性和访问方式的区别下,社交网站也相互区别开来。

当用户在加入一个社交网站时,识别系统会推荐与其有关系的其他用户。这些关系的标签主要分为朋友,联系人,粉丝等。大多数社交网站需要双向确认友谊。单向的关系则会被贴上粉丝的标签。而朋友的标签也可能会误导人,因为这种连接不一定意味着日常关系上的友谊,因为人们联系的原因是多种多样的。除了用户的个人信息之外,社交网络还提供结识朋友、发表评论和发送私人消息等功能。有的社交网站会提供照片分享或者视频分享的功能,或者是内置博客和即时消息传递功能。许多社交网站的目标用户会是特定的地理区域或者特定语言使用团体,尽管实际上可能并不是特定的目标用户。

随着位置服务(locationbasedservice,lbs)与社交网络逐渐融合,形成了基于位置的社交网络(location-basedsocialnetworks,lbsn),它通过移动用户的位置签到功能,把线上虚拟社会与线下真实世界关联在一起,实现用户位置定位的同时,还实现了位置信息在虚拟网络世界的共享和传播,从而衍生出多种多样的位置服务,其中,推荐系统作为目前解决信息过滤和个性化服务问题的重要技术手段之一,在位置服务中发挥着越来越重要的作用。

社交网络的快速崛起和广泛应用,让更多的人加入到社交网络中进行信息交流活动。人们产生,传播和使用信息的方式被社交网络所改变。社交网络与传统的互联网络不同:传统互联网中的用户只是信息的接收者,他们只能通过网站浏览信息;在社交网络中,用户除了作为信息消费者,又是信息的发布者和传播者。用户可以在社交网络中发布信息,并且被发布出来的信息通过社交网络平台在用户群体之间传播。例如,用户在facebook上分享自己的观点,关注那些自己会感兴趣的信息,并将这些信息分享给好友。又如,在twitter和新浪微博上,用户可以发表自己的微博,添加好友,也可以向粉丝们分享自己的兴趣爱好信息等。

目前,社交网络中的用户规模和用户发布的信息增量迅猛,而包含着地理位置信息的内容也在被越来越多的人所关注。社交网络所提供的信息是很丰富的。一般情况下,人们使用社交网络平台与朋友保持联系和寻求各种不同的社会信息。现在,广泛采用了的全球定位系统的移动终端和基于位置的移动服务(lbs)的成功使得社交媒体数据能够获取到地理位置信息。地理位置标记微博在分享言论和意见、获取新闻和了解现实世界的真实事件上发挥了重要的作用。因此基于位置的社交网络成为了丰富的含有地理信息的资源。

但是,当前的传统主流搜索引擎大多在从含有丰富的关键词的长文本中获取相关的信息,这种方式并不适合包含一些关键字信息的短文本社交媒体数据。当前流行的微博它们自身也提供了一些实时搜索服务,搜索返回与用户输入的关键字相关的高排名的微博,然而这种搜索并没有包含所发微博的空间信息,对于用户来说,用户可能希望自己的搜索结果是结合了微博的空间信息之后,获取到的最合适的信息。并且,现有的技术在进行相关信息的索引时,都是根据单一的关键字或者单一的信息点进行搜索,使得搜索准确性降低,搜索的工作量增大,降低了用户的体验,为用户进行有效信息的查找带来不便。



技术实现要素:

针对上述问题,本发明的目的在于提供一种社交网络文本数据的索引方法,在顾及关键词相关性的同时,考虑地理位置的相关性。

为了解决背景技术中所存在的问题,本发明的技术方案为:

一种社交网络文本数据的索引方法,包括以下步骤:

1)、获取需求用户的地理位置,根据需求用户输入的需求,对社交网络中的文本数据进行分词处理,获取与需求用户的需求相匹配的关键词组;

2)、根据所获取的关键词组,建立索引树dlir-tree,所述索引树dlir-tree的每个节点包含一系列的社交网络文本的发送用户,每个节点的发送用户都是由该节点的下一层的子树所包含的发送用户的集合;

3)、根据需求用户的需求、地理位置及区域半径查询索引树dlir-tree,得到相应的文本数据。

所述步骤1)具体包括:

1.1、对待处理的文本数据进行分词停用词、标点符号、表情处理,得到处理后的文本数据;

1.2、利用正向匹配策略与逆向匹配策略对处理后的文本数据对文本数据分词,通过相互的信息比对,以及歧义词语对的互信值比较,以互信值高一组为最终的分词结果,输出分词集合。

所述步骤2)具体包括:

定义dlir-tree叶子节点对象<l,λ,ψ,f>,其中每个实体对象都包含了地理位置信息l,λ为存在一个与该地理位置对应的最小边界矩形mbr属性,与地理位置相关联的文本关键词ψ,并且存在集合f代表一组发送用户,这组发送用户在该地理位置上签到过的;

定义dlir-tree非叶子节点对象<r,λ,ψ,f>,其中,r表示了孩子节点对象的集合,λ为其孩子节点的地理位置所组成的对应的最小边界矩形mbr属性,最小边界矩形对所要查询的区域用户做相应的匹配计算,ψ对应了所有的孩子节点所包含的文本关键词,f为对象中一组在该区域做过签到行为且发表过文本的发送用户。

所述步骤3)具体包括:

给定一个查询需求q、给出一个非叶子节点实体e,以及它的最小边界矩形e.λ,用trq(p)表示对象实体p对应的关联倒排文本与查询q的关键词的相关度,对于任意属于节点e的对象实体p,均有对于文本签到位置与需求用户发起查询的地理位置之间的社会距离相关性的公式:

在上述公式中,sdq(p)表示对象实体p对于用户u发起的查询的社会距离相关性,其中,α∈[0,1),常量1保证了计算的相关性永远不会等于零。

与现有技术相比较,本发明的有益效果为:

本发明提供了一种社交网络文本数据的索引方法,同时考虑文本数据和地理位置的混合索引结构,简称dlir-tree,以便于根据用户的需求快速搜索得到符合需求及在区域范围内与关键词组相关的文本信息,并且能够通过边界评分方式提供搜索空间的剪枝能力,通过利用地理位置已经查询的需求建立索引,增大了索引能力,减低了索引的数据处理量,提供了工作效率。

附图说明

图1是本发明社交网络文本数据的索引方法流程图;

图2是本发明社交网络文本数据的索引方法dlir-tree结构图;

图3是本发明实施例微博倒排索引结构图;

图4是本发明实施例地理位置图;

图5是本发明实施例倒排文件图。

具体实施方式

下面结合附图对本发明做详细描述。

用户可能通过移动终端发表一条文本的时候,该移动终端支持位置定位服务,那么用户可以选择是否标记地理位置进行签到,但是并不是所有的移动终端都支持位置定位服务,也可能用户不让别的用户或者好友看见自己在何地发表微博而故意不签到。针对这种情况,本发明对带有地理位置信息的社交网络数据节点进行处理。

如图1所示,本发明提供了一种社交网络文本数据的索引方法,包括以下步骤:

1)、获取需求用户的地理位置,根据需求用户输入的需求,对社交网络中的文本数据进行分词处理,获取与需求用户的需求相匹配的关键词组;

1.1、对待处理的文本数据进行分词停用词、标点符号、表情处理,得到处理后的文本数据;

定义汉字字符集合∑={c1,…,ci,…,cn},其中c1表示汉字的字符,∑*表示在字符集∑上的字符串集合。

定义分词规则为κ表示在某种语境下,对于w∈∑*,k∈κ,符合seg(w,k)=1说明w是一个词语,seg(w,k)=0就表示w不是词语。一般来说,当把κ退化为一个词库v时,seg(w,k)=1(w∈v),或者

定义针对应用d(applicationdomain)的词汇及(词库):

vd={w1,…,wi,…,wv|wi∈∑*},并且应用d满足segd(wi)=1。

不考虑对d的限制,认为任何词库都可以作为参考,vd简记为v。于是v*表示在v的词汇串集合。

定义tail(s)=tail(c0c1…ck)=ck,head(s)=c0,vcat(ci,cj)=cicj,ci,cj∈s。

定义如果存在字符串s∈s,是s=c1c2…cn的一种分词结果,记为

定义将分词规则定义为k,中文分词问题就成为了利用计算机解决式子:

中文分词方法中,常用的方法主要有正向最大匹配分词法(forwardmaximummatchingmethod,fmm)和逆向最大匹配分词法(reversemaximummatchingmethod,rmm)。

正向最大匹配分词法fmm主要依据了分词词典来进行词语切分,它的思想是:假定如果分词词典中最大长度词条的长度为n即该词条由n个字符组成,首先获取文档的中文短语,然后读取当前中文短语中的前n个字符,这些字符就是需要匹配的字符串,然后开始分词操作,与分词词典中的词语进行匹配,如果词典中有这个字符串形成的词语,那么匹配成功,这个字符串就是一个词语被切分出来;如果词典中找不到对应这样的一个词语,就认为匹配失败,此时去掉字符串最后一个字符,继续进行匹配,直到匹配成功出一个词或者字符串只剩下一个字符结束匹配。以伪代码的形式在下面给出正向最大匹配分词法的描述:

逆向最大匹配分词方法rmm与正向最大匹配分词方法fmm的基本原理相同,但是不同的地方在于分词切分扫描的方向与fmm方法是相反的。逆向最大匹配分词法从文档的末尾处进行匹配,使用逆序词典作为分词词典,其中每个词语都是正常词语的逆序形式。在算法中,首先要对被处理文档进行逆序的操作,生成逆序文档。接着采用逆序词典对逆序文档进行匹配。由于中文语句大多是偏正结构的形式,从后向前的匹配策略能够使得分词的准确率得到提升。以伪代码的形式在下面给出逆向最大匹配分词法的描述:

歧义词语是中文分词中经常会出现的问题。中文歧义是对于一个中文句子进行分词,可能会得到不同的分词的结果。中文歧义有三种形式,交集型歧义(oas),覆盖型歧义(cas)和真歧义:oas歧义,设a,b,c分别代表一个或多个连续的汉字,则句子abc中,ab和bc分别可以组合成词,那么就被成为交集型歧义;cas歧义,设a,b各为一个或多个连续的汉字,若a,b自身分别是词语,则称作覆盖型歧义;真歧义就是对于分词结果必须根据上下文其他句子去进行判断。

需要说明的是,在对文本内容进行分词预处理时,需要去考虑对于停用词的处理。在中文语句中,停用词基本上是对这句话没有语义上的贡献,没有意义。然而,这种词语会大量出现在文本中,因此处理好停用词能够提高词语切分效率以及提升后续算法处理的准确性。词语切分时,必须对这些词进行处理。要正确的处理好停用词,那么停用词表的使用和停用词的识别是非常重要的。

1.2、利用正向匹配策略与逆向匹配策略对处理后的文本数据对文本数据分词,通过相互的信息比对,以及歧义词语对的互信值比较,以互信值高一组为最终的分词结果,输出分词集合。

对文本进行分词预处理,这其中要对停用词和标点符号进行处理,停用词库的获取很方便,将文本与停用词库以及标点符号做比对处理。用“#”进行替换,从而可获取到待分词文本数据。接下来就是具体分词算法核心处理部分,对待分词文本进行词语切分处理,最后得到分词结果集合。

文本分词处理算法中,歧义词的处理时分词不可避免的阶段,采用计算互信来进行歧义的消除。互信的公式如下所示:

在公式(4.1)中,xy表示中文有序字符串,x、y分别是其中两个词。

示例性的,本发明以伪代码的形式在下面给出微博文本分词处理算法的描述:

该算法首先通过对文档x与停用词集合的处理获取到处理后的文档x1,那么文档x1经过停用词处理后,实际上将其变成了由一句短语构成的文本。之后读取文档x1,首先获取一个中文短语s,如果中文短语s长度小于分词词典最长词语长度,则直接对中文短语进行分词,如果中文短语s长度大于分词词典最长词语长度,则就需要进一步截取字符串进行分词,算法中采用字符串term1与正向分词词典匹配进行正向分词的操作,采用term2与逆向分词词典匹配进行逆向分词的操作。当获取到正向分词集合fw和逆向分词集合rw后,首先将逆序分词集合rw词语进行逆向操作获取正确的词语集合,然后比较正向与逆向分词集合,判断是否出现了歧义词语,当出现歧义词语的时候,就记录这些歧义词语存入集合aw中。算法中对消除歧义的做法采取的是,先参照集合c1中的词语出现次数,然后统计歧义词语出现的概率,并根据公式(4.1)进行互信计算,互信的分高的那组为最终的分词结果。算法最终生成输出分词集合r。

2)、根据所获取的关键词组,建立索引树dlir-tree,所述索引树dlir-tree的每个节点包含一系列的社交网络文本的发送用户,每个节点的发送用户都是由该节点的下一层的子树所包含的发送用户的集合;如图2所示,图2为dlir-tree结构图,在这个树中,叶子节点由一组实体对象构成。给出该对象的形式化定义:

定义dlir-tree叶子节点对象<l,λ,ψ,f>定义表明每个实体对象都包含了地理位置信息l,并且存在一个与该地理位置对应的最小边界矩形mbr属性λ,与地理位置相关联的文档即用户在该地理位置签到时所发的微博文本关键词ψ,并且存在集合f代表一组用户,这组用户都是在该地理位置上签到过的。

对于dlir-tree索引树的每个叶子节点来说,每个叶子节点映射一个相应的倒排文件。

倒排文件又被称作倒排索引,它的含义是用记录的非主属性值(也叫副键)来查找记录而组织的文件叫倒排文件,即次索引。倒排文件中包含了所有的非主属性值,并且列出了与之有关的所有记录的主键值,倒排文件主要用于复杂查询处理。

对于搜索引擎而言,它需要一个特别有效的数据结构处理收集到的数据,并在这个基础上给用户提供搜索服务。现在大量的搜索引擎都采用倒排文件的索引方式处理数据。根据倒排文件的特征可以看到,倒排文件简单地认为是一种用文档的关键词作为索引,而文档自身作为索引目标的结构。

针对叶子节点关联的倒排文件,如图3所示,由两个主要的部分构成:

(1)一个关键词词汇表,这些关键词均在某些微博文本中出现过。

(2)对于每一个单词来说,它对应的一组微博文本集合,以链表形式表现。例如对于一个关键词w来说,一篇微博文本中出现了这个关键词w,那么将这样的微博文本放在同一个集合中。

对于dlir-tree中的每一个非叶子节点,给出了形式化的定义:

定义dlir-tree非叶子节点对象<r,λ,ψ,f>定义中r表示了它的孩子节点对象的集合,并且其孩子节点的地理位置所组成的对应的最小边界矩形mbr属性λ,这个最小边界矩形可以对所要查询的区域用户做相应的匹配计算,ψ对应了它所有的孩子节点所包含的微博文本关键词,对象中的f也是一组在该区域做过签到行为且发表过微博的用户,同时这些用户也是该节点的孩子节点对应的用户集合。

对于dlir-tree索引树的每个非叶子节点来说,每个非叶子节点也始终会映射一个相应的倒排文件。

如图4所示,图4是对于图2dlir-tree树中各个节点的一个地理位置图。如图所示,位置l1和位置l2形成了一个mbr即r1,位置l3和位置l4形成了一个mbr即r2,位置l5、位置l6和位置l7形成了一个mbr即r3,位置l8和位置l9形成了一个mbr即r4,接着r1与r2形成上一层的mbr即r5,r3与r4形成上一层的mbr即r6,与图2dlir-tree相对应。

示例性的,如图5所示,是对于图2dlir-tree树中各个节点的一个倒排文件图。图中左侧为节点r5的倒排文件,文件中包含六个关键词,其中每一个关键词对应了构成r5的r1与r2的实体对象,可以看到价格对应r1与r2,牛排对应r1,餐厅对应r1与r2,电影院对应r1,酒店对应r2,商场对应r2。图中中间部分是r1对应的倒排文件,右侧部分是r2对应的倒排文件。因为r1对应的孩子节点已经是叶子节点,因此其对应的倒排文件内容关联的是具体的微博文本,已在图中表示。

所定义的dlir-tree继承了典型的ir-tree所具有的一个重要特征,即每一个非叶子节点都有一个对应的关联倒排文本,该关联文本就是对以该节点为根节点的子树的查询的关联倒排文本的上界。

3)、根据需求用户的需求、地理位置及区域半径查询索引树dlir-tree,得到相应的文本数据。

定义dlir-tree倒排文本单调性给定一个查询q,再给出一个非叶子节点实体e,以及它的最小边界矩形e.λ。用trq(p)表示对象实体p对应的关联倒排文本与查询q的关键词的相关度。那么对于任意属于节点e的对象实体p,均有

例如对于图2中数据,给定一个查询q,那么就有trq(r5)≥trq(r1)≥trq(p1)

对于微博签到位置与用户发起查询的地理位置之间的社会距离相关性的如下列公式(4.2)所示:

在上述公式中,sdq(p)表示对象实体p对于用户u发起的查询的社会距离相关性。其中,α∈[0,1),常量1保证了计算的相关性永远不会等于零。α||uqu||s也经常会被用于其他的一些社交网络评分计算以及pagerank,考虑对其进行合适的处理,应用在dlir-tree的查询算法中。

基于以上定义与公式,给出下列定义:

定义给定一个查询q,再给出一个非叶子节点实体e,并且它拥有孩子节点,孩子节点包含了n个实体对象,有e={ei,1≤i≤n},那么对于任意的孩子节点对象实体,都有

因为ei是e的孩子节点中的一个对象,ei一定是e的一个子集,有对于定义4.10可以给出以下证明:

dlir-tree查询算法:

对于给定的一个微博文本p与用户需求q关键词组的相似度,可以用下列公式(4.3)计算:

根据对微博文本分词处理后,可将微博文本看作是由一组关键词组成的,即微博文本自身也是一个关键词组。那么通过对公式(4.3)的分析可知,当wp,i*wq,i的结果为零时,是不影响相似度的,而只有当p或者q其中任意一方的关键词不能匹配时,wp,i*wq,i的结果为零。当p或者q中的关键词不完全匹配时,也就是其中有一方不存在该关键词,但是这种情况出现的比较少,那么可以考虑以关键词存在较多的一方作为参考对象,而不考虑关键词存在较少的一方。相反,当p或者q中的关键词匹配度非常低的时候,也就是wp,i和wq,i存在非常多的零项时,那么就考虑以关键词存在较少的一方作为参考对象,而不考虑关键词存在较多的一方。公式(4.4)是改进的余弦相似度计算公式,其中k为选择的关键词的索引集合,去掉了不考虑的关键词组中的关键词。

改进的余弦相似度计算公式能够保证当匹配度高的情况下,给与其一定的权值挑选出来,匹配度过低的情况下,赋予其较低的权值,使得相似度的区分更加快速更加合理。结合dlir-tree以及改进的余弦相似度计算公式,可以获取到微博plist。

以伪代码的形式在下面给出dlir-tree查询算法的描述:

上述算法首先初始化一个优先队列u,该队列存放的是对dlir-tree进行最佳优先搜索的结果。首先将dlir-tree的根节点存入优先队列中,对优先队列u进行while循环操作,当优先队列u为非空队列时,则表明此队列中存在符合条件的节点或对象,那么判断出队列的是否是一个实体对象,如果是一个实体对象,那么判断这个对象对应的微博文本是否已经存入plist中,若plist中没有,就将该对象添加入plist中。当出队列的不是一个实体对象时,那么它就对应了dlir-tree中的一个非叶子节点,那么此时遍历这个节点e的所有孩子节点e′,如果存在孩子节点e′的社交距离小于给定的查询半径社交距离即sdq(e′)<sdq(r),并且它所对应的倒排文件关键词与给定查询关键词组有交集即那么就计算这个孩子节点与给定关键词组的相似度,作为优先级别将这个孩子节点e′存入优先队列中,然后算法继续执行while循环,直到优先队列为空队列结束。

对于本领域技术人员而言,显然能了解到上述具体实施例只是本发明的优选方案,因此本领域的技术人员对本发明中的某些部分所可能作出的改进、变动,体现的仍是本发明的原理,实现的仍是本发明的目的,均属于本发明所保护的范围。

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