一种基于Simhash算法的旅游网络社区划分方法_2

文档序号:9417479阅读:来源:国知局
1. 6) (2. 1. 7) (2. 1. 8) (2. 1. 9) 对st进行分词的结果是:我们/是/旅游爱好者。
[0043] (2. 2)对照停用词表去掉停用词,得到文本的特征值,并确定特征值对应的权重, 具体包括以下步骤:
[0044] (2. 2. 1)针对(2. 1)中的st,对照停用词表去掉"是"得到st的特征值为{我们, 旅游愛好者};
[0045] (2. 2. 2)将st的特征值与权重库对比得到每一个特征值的权重,权重词库如表2 所示:
[0046] 表2为权重词库的截图
[0047] CN 105138647 A I兄明书 4/5 页
[0048] (3)根据步骤(2)所得的文本特征值及其对应的权重,用Simhash算法进行处理, 参见图2,得到该文本的语义指纹,并将其存入数据库中,具体由以下步骤实现:
[0049] (3. 1)假定Simhash的长度为64位,初始化长度为64位的数组,该数组的每个元 素都是〇。求一个特征值的64位hash值,如果hash值得第i位是1,那么数组的第i个数 加上该特征的权重使对应位置变为正权重;否则,当hash值得第i位为0时,则将第i位减 去它的权重值使对应位置变为负权重;最后得到这个特征值的权重编码。
[0050] (3. 2)重复(3. 1)步骤,对当前文本的所有特征值进行处理。将所有特征值对应位 求代数和并放入原数组。数组中的某些数为正,某些数为负。Simhash值的每一位与数组中 的每个数对应,将正数对应位设为1,负数对应位设为〇,给出64位的0/1数组,即为最后的 Simhash0
[0051] 用 java 程序处理 St1= i want to go to bei jing with i ;
[0052] st2= I want to go to Beijing with e ;
[0053] St3= go to school ;
[0054] St1二〇〇〇〇〇〇〇〇〇〇110100010000000100001100100001100111100011100110111000
[0055] St2二〇〇〇〇〇〇〇〇〇〇110100010000000100001100100010100110100011100110110000
[0056] St3= 0000000000110110110101101100100110100101100111100011000000110000
[0057] (3. 3)将文本和对应的simhash编码放入数据库中,放入数据库中后如表3所示:
[0058] 表3语义指纹在数据库中的存储格式
[0059]
LlN 丄U01di5b4/ A I ^ 0/O JM
[0060] (4)用海明距离算法将步骤(3)所得到的一个文本的语义指纹与预先划分类别中 的中心文本进行对比,若两者之间的海明距离小于等于3,则将该文本归类至该中心文本所 对应的类别中,并将其对应类别存入数据库中对应的用户信息中;否则,将其与预先划分类 别中的其他中心文本进行对比;若不存在满足条件的中心文本,则将该文本作为新类别的 中心文本;
[0061] 例如:用户1和用户2预先划分类别分别为A类和B类。将用户3的语义指纹与 用户1的语义指纹用海明距离进行对比,得到的距离为14,则说明用户3与用户1不是同 类,再将用户3的语义指纹与用户2的语义指纹进行对比,得到的距离为16,说明用户3和 用户2也不是同类。那么将用户3作为新的类别C类的中心文本存放到数据库中。如表4 所示:
[0062] 表4用户所属类别在数据库中的存储格式
[0063]
[0064] (5)重复步骤(4),完成数据库中的其他文本的类别划分,完成了旅游网络社区划 分。
[0065] 上述实施例步骤(2. 1)中还可以使用逆向最大匹配算法或双向最大匹配算法进 行分词处理,其具体处理过程与正向最大匹配算法的过程类似。
[0066] 上述实施例中未详细描述的方法或处理过程均属于常规方法,对于本领域技术人 员均可获知。
【主权项】
1. 一种基于Simhash算法的旅游网络社区划分方法,其特征在于包括以下步骤: (1) 爬取旅游网络上的用户ID以及文本数据,并存入数据库; (2) 对数据库中所存放的文本数据进行分词处理,对照停用词表去掉停用词,得到文本 的特征值,并确定特征值对应的权重; ⑶根据步骤⑵所得的文本特征值及其对应的权重,用Simhash算法进行处理,得到 该文本的语义指纹,并将其存入数据库中; (4) 用海明距离算法将步骤(3)所得到的一个文本的语义指纹与预先划分类别中的中 心文本进行对比,若两者之间的海明距离小于等于3,则将该文本归类至该中心文本所对应 的类别中,并将其对应类别存入数据库中对应的用户信息中;否则,将其与预先划分类别中 的其他中心文本进行对比;若不存在满足条件的中心文本,则将该文本作为新类别的中心 文本; (5) 重复步骤(4),完成数据库中的其它文本的类别划分,完成了旅游网络社区划分。2. 根据权利要求1所述的基于Simhash算法的旅游网络社区划分方法,所述步骤(1) 具体是由以下步骤实现: (I. 1)申请旅游网络爬取数据的权限; (1. 2)根据旅游网络接口查看用户的注册住址addressl、用户文本信息内容text以及 用户发表文本信息内容时所在地址address2 ; (1. 3)判断用户的注册住址addressl与用户发表文本信息内容时所在地址address2 是否相同,若不相同,则确定文本信息内容与旅游相关,将其用户ID以及文本数据存入数 据库;否则,返回步骤(2)查看下一个用户。3. 根据权利要求1所述的基于Simhash算法的旅游网络社区划分方法,其特征在于: 所述步骤(2)中的分词处理采用正向最大匹配算法或逆向最大匹配算法或双向最大匹配 算法。4. 根据权利要求1所述的基于Simhash算法的旅游网络社区划分方法,其特征在于: 所述步骤(3)中的Simhash算法具体由以下步骤实现: (3. 1)用hash编码算法对步骤(2)所得的每个文本特征值进行处理,将其转化为64位 的编码,得到hash编码; (3. 2)对hash编码的每一位进行处理,若对应位置处的编码为1,则将其相应位数变为 正权重;否则为负权重,得到相应的权重编码; (3. 3)将所有文本特征的权重编码对应位求和,得到求和后的编码,若求和后的编码中 的位数为正,则将其标记为1 ;否则,标记为0,得到Simhash编码值,即为语义指纹。
【专利摘要】本发明涉及一种基于Simhash算法的旅游网络社区划分方法,其是利用Simhash算法对文本进行处理计算文本的语义指纹,用海明距离来比较文本的语义指纹之间的距离,推算文本相似度,从而达到对相似用户进行聚类的目的,该方法将短文本高维度的特征向量进行降维处理,大大减少了其所占用的存储空间,而且本发明的算法简单方便、运算时间少,对文本的处理速度快,进而提高了复杂网络社区的划分效率,这对预测旅游活动的趋势与动向,提供旅游服务信息,推荐旅游线路乃至预测旅游高峰都有重大意义。
【IPC分类】G06F17/30, G06Q50/00
【公开号】CN105138647
【申请号】CN201510530303
【发明人】曹菡, 冯倩, 李程
【申请人】陕西师范大学
【公开日】2015年12月9日
【申请日】2015年8月26日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1