[发明专利]一种不同信息源的房产数据同一性判别方法有效

专利信息
申请号: 201910242011.3 申请日: 2019-03-28
公开(公告)号: CN109977287B 公开(公告)日: 2021-02-02
发明(设计)人: 刘春阳;张旭;王鹏;姜越;张华平;张吴波;张宝华 申请(专利权)人: 国家计算机网络与信息安全管理中心
主分类号: G06F16/951 分类号: G06F16/951;G06F16/9535;G06F16/2458;G06F16/215;G06Q50/16
代理公司: 北京正阳理工知识产权代理事务所(普通合伙) 11639 代理人: 王民盛
地址: 100029*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 不同 信息源 房产 数据 同一性 判别 方法
【权利要求书】:

1.一种不同信息源的房产数据同一性判别方法,其特征在于:

所述房产数据同一性判别方法基于已有多源及异构房地产交易网站公布的房屋数据,分析房屋特征,对房屋的同一性进行判别,剔除重复房屋;

具体基于链家、我爱我家、中原、麦田网站公布的房屋数据及其相关性;通过分析房屋数据的特点,通过区域去重、小区去重以及房屋去重的三大步骤剔除重复的房屋数据;

其中,所述房屋数据是对实际的房屋客体的特点描述,虽然描述的角度和方式存在差异,但数据之间存在很强的相关性;不同网站发布的房屋数据,虽然描述不尽相同,但描述对象为同一房屋时,存在如下相关性:

A、房屋地址相同:房屋的地址体现在所在的小区是同一个小区,所在的楼栋属于同一个楼栋;由于很少有网站公布房屋所在楼栋的信息,因此在这方面的判断可以采用所在楼栋的楼层高来判断;

B、房屋的基本属性相同:房屋的基本属性包括房屋面积、户型以及朝向;

C、业主的期望相同:业主在出租以及销售房屋时,对房屋的价格期望是一致的,因此可用其挂牌价格判断;

所述房产数据同一性判别方法,包括如下步骤:

步骤1)针对不同网站对同一城市下的相同区域描述存在差异进行区域去重;

对区域的判别,通过区域名称来判断是否是同一个区域;通过对房屋交易网站中对区域命名的特点,以及人们对区域的称呼习惯的分析,一般对区域的称谓,都有一个“核心词”;有些就直接以该“核心词”命名,有些在“核心词”的后面附加后缀;

步骤1)又包括如下子步骤:

步骤1-1)为了后续统计及分析方便,建立区域信息表,并在该表中设定字段保存从网站采集的区域所在城市和区域名称,以及区域的别名字段和别名来源优先级字段;

区域的别名字段用于标识区域的名称,在对区域操作时,通过区域的别名是否相同,判断是否是同一区域;别名来源优先级用于对别名字段更新的判断;

步骤1-2)确定房地产网站的优先级;

其中,网站源优先级分别为0、1、2,数字越小,优先级越高;

步骤1-3)按照步骤1-2)设定的房地产网站优先级,查询相同城市下的所有区域;将查询得到区域列表两两比较,比较的方法方式是判断区域的名称是否相似,依据判断的结果更新区域的别名,具体为:

其中判断区域的名称是否相似,采用规则的方法判断;根据各网站对区域名称的特点,书写判别规则,然后使用判别规则对待判断的区域名称进行判定,如果判定两小区的名称相同,则按照下面的规则更新区域的名称:

设当前比较的区域为A、B,若A区域和B区域的名称匹配成功,再判断A、B的别名是否赋值:若A、B的别名都未赋值进行1-3A)操作;若A的别名已赋值且B的别名未赋值进行1-3B)操作;若A的别名未赋值且B的别名已赋值进行1-3C)操作;若A、B的别名已赋值进行1-3D)操作;

1-3A)获取A区域的来源网站的优先级λa,B区域的来源网站的优先级λb;如果λa大于λb,则将B区域的名称作为A区域的别名,λb作为A区域的别名来源优先级,保存在区域信息表,跳至步骤1-4);反之,将A区域的名称作为B区域的别名,λa作为B区域的别名来源优先级,保存在区域信息表,跳至步骤1-4);

1-3B)获取A区域的别名来源优先级λa’,B区域的来源网站的优先级λb;如果λb大于λa’,将A的别名作为B的别名,λa’作为B的别名来源优先级,跳至步骤1-4);反之,将A的别名更新为B的名称,将A区域的别名来源优先级更新为λb,跳至步骤1-4);

1-3C)获取B区域的别名来源优先级λb’,A区域的来源网站的优先级λa;如果λa大于λb’,将B的别名作为A的别名,λb’作为A的别名来源优先级,跳至步骤1-4);反之,将B的别名更新为A的名称,将B区域的别名来源优先级更新为λb,跳至步骤1-4);

1-3D)获取B区域的别名来源优先级λb’,A区域的别名来源优先级λa’;如果λa’大于λb’,将A的别名更新为B的别名,将A的别名来源优先级更新为λb’,跳至步骤1-4);反之,将B的别名更新为A的名称,将B区域的别名来源优先级更新为λa’,跳至步骤1-4);

步骤1-4)通过步骤1-3)比较区域名称并匹配完毕后,将所有区域别名字段为NULL的区域的别名赋值为区域名;

步骤1-5)以区域信息表中的区域别名作为依据进行城市区域的查询和统计;

步骤2)小区去重,即针对城市区域中的小区进行同一性判别,具体包括如下子步骤:

步骤2-1)建立小区查重表,保存判别为相同小区的小区标识,该表中设立两个字段:比中源小区标识和比中目标小区标识;

其中,小区标识为小区的ID;

步骤2-2)按照步骤1-2)确定的网站优先级,根据区域信息表,搜索小区表中区域别名相同的小区,并两两比较小区的特征,设待比较的小区为C1、C2,具体包括如下子步骤:

步骤2-2-1)计算小区位置差异度,具体采用公式(1)计算:

小区位置差异度=|小区经度差|+|小区纬度差| (1)

其中,|小区经度差|表示C1的经度与C2的经度差的绝对值,|小区纬度差|表示C1的纬度与C2的纬度差的绝对值;

如果C1、C2没有经纬度信息,则小区位置差异度为0;

步骤2-2-2)计算小区面积相似度,具体采用公式(2)计算:

小区面积相似度=|1-|小区面积差|/Min(小区面积)| (2)

其中,|小区面积差|表示C1的小区面积与C2的小区面积差的绝对值;Min(小区面积)表示C1的小区面积与C2的小区面积中的较小值,如果两者相等,则为C1的小区面积;

如果没有建筑面积信息,则小区面积相似度为1;

步骤2-2-3)计算小区总户数相似度,具体采用公式(3)计算:

小区总户数相似度=|1-|小区总户数差|/Min(小区总户数)| (3)其中,|小区总户数差|表示C1的小区总户数与C2的小区总户数差的绝对值;Min(小区总户数)表示C1的小区总户数与C2的小区总户数中的较小值,如果两者相等,则为C1的小区总户数;

如果小区没有总户数信息,则小区总户数相似度为1;

步骤2-2-4)计算小区名称的相似度,具体采用公式(4)计算:

小区名称相似度=1-(eDistance/maxlength(小区名称)) (4)

其中,eDistance是C1的小区名称与C2的小区名称的字符串编辑距离,计算方法为,采用插入、修改、删除一个字符的方法,把C1的小区名称转换成C2的小区名称所需要的最少操作步骤数;maxlength(小区名称)是C1的小区名称的长度与C2的小区名称长度的较大值,如果两者相等,则为C1的小区名称的长度;

步骤2-2-5)计算小区物业公司名称的相似度,具体采用公式(5)计算:

1-(eDistance/maxlength(小区物业公司名称)) (5)

其中,eDistance是C1的物业公司名称与C2的物业公司名称的字符串编辑距离,计算方法为,采用插入、修改、删除一个字符的方法,把C1的物业公司名称转换成C2的物业公司名称所需要的最少操作步骤数;maxlength(小区物业公司名称)是C1的物业公司名称的长度与C2的物业公司名称长度的较大值,如果两者相等,则为C1的物业公司名称的长度;

步骤2-3)利用步骤2-2中计算的小区特征的相似度,判断小区的同一性;如果小区位置差异度小于设定的阈值T1,并且面积相似度、总户数相似度大于设定的阈值T2、小区名称、物业公司名称的相似度大于设定的阈值T3,则判定为是同一小区;

其中,阈值T1的选取准则为根据经纬度相差0.01度,距离相差约1000米的方法,将T1选取为0.02;阈值T2选取为0.95;阈值T3选取为0.9;

步骤2-4)如果小区C1和C2在步骤2-3中判定为同一小区,则将C1和C2更新到小区查重表,具体为:获取小区C1的来源网站优先级λ1,小区C2的来源网站优先级λ2;如果λ1大于λ2,则将C2作为比中源,C1作为比中目标,保存到小区查重表;否则将C1作为比中源,C2作为比中目标,保存到小区查重表;

步骤3)房屋去重,即进行房屋同一性判别;

其中,所述房屋信息特征包括所在楼栋的层高、所属楼层、挂牌价格、建筑面积、户型结构、户型图以及朝向;再根据所述房屋信息特征判别房屋的同一性;

步骤3)具体包括如下子步骤:

步骤3-1)建立房屋查重表,设立两个字段:比中源房屋标识和比中目标房屋标识;

其中,房屋标识为房屋的ID;

步骤3-2)根据城市的区域,搜索同一区域的小区,建立小区列表cList,并按照网站优先级排序;

步骤3-3)根据小区查重表的信息,将小区列表cList中的小区进行聚类,具体为:

步骤3-3A)构建邻接表G,邻接表G中的每一个节点代表小区列表cList中的一个小区;

步骤3-3B)从小区查重表中查询小区列表cList中被判别为同一小区的小区列表rList,rList中的每个元素包含两个信息:比中列表比中源和比中列表比中目标;

步骤3-3C)遍历rList,将比中源和比中目标所对应的小区,在邻接表G中构建一条边;

步骤3-3D)采用深度优先算法,遍历邻接表G,在G中生成森林F,森林F中的每一棵树,是G中的极大连通子图;

其中,F中每一棵树表示一个小区;

步骤3-4)遍历由步骤3-3)中产生的森林F中的每一个树Tree,从房屋表查询得到树Tree所有节点表示的小区中的房屋列表;

步骤3-5)将房屋居室分成5类:1居室、2居室、3居室、4居室以及4居室以上,为每个分类建立列表;将房屋列表中的房屋按照居室数分别添加到相应的分类列表,遍历每个分类列表中的房屋,并两两比较房屋的特征,设待比较的房屋为H1,H2,具体为:

步骤3-5-1)判断所在楼栋的层高是否相同,如果楼栋的层高不相同,判断两房屋不相同,结束判断,如果相同,则执行步骤3-5-2)至步骤3-5-4):

步骤3-5-2)计算房屋所在的楼层相似度:目前网站在发布房屋信息时,并不发布具体的楼层,而是只描述房屋的大概楼层,并且不同网站的描述也存在差异;

具体计算方法为:根据各网站对楼层的描述,建立各楼层的同义词,比较房屋所在楼层时,如果房屋的楼层属于一对同义词,则其相似度为1,否则0;

步骤3-5-2)计算面积相似度:具体采用公式(6)计算:

|1-|面积差|/Min(面积)| (6)

其中,|面积差|表示H1的房屋面积与H2的房屋面积差的绝对值;Min(面积)表示H1的房屋面积与H2的房屋面积中的较小值,如果两者相等,则为H1的房屋面积;

步骤3-5-3)计算价格相似度:具体采用公式(7)计算:

|1-|价格差|/Min(价格)| (7)

其中,|价格差|表示H1的挂牌价格与H2的挂牌价格差的绝对值;Min(价格)表示H1的挂牌价格与H2的挂牌价格中的较小值,如果两者相等,则为H1的挂牌价格;

步骤3-5-4)计算朝向相似度:具体采用公式(8)计算:

1-(eDistance/maxlength(朝向)) (8)

其中,eDistance是H1的房屋朝向与H2的房屋朝向的字符串编辑距离,计算方法为,采用插入、修改、删除一个字符的方法,把H1的房屋朝向转换成H2的房屋朝向所需要的最少操作步骤数;maxlength(朝向)是H1的房屋朝向的长度与H2的房屋朝向长度的较大值,如果两者相等,则为H1的房屋朝向的长度;

步骤3-6)若房屋所在的楼层相似度为1,并且其面积相似度、价格相似度大于设定阈值T4;朝向相似度大于设定阈值T5则视为相似房屋;

其中,阈值T4选取为0.95,阈值T5选取为0.5;

步骤3-7)在步骤3-6中判别为相似房屋,由于实际房屋信息中存在许多在楼层,面积、价格、朝向都相似的房屋,需进一步判断房屋的户型结构;目前户型图用较粗的黑线,勾勒出房屋的墙壁轮廓,并配有家具、饰物等,因此比较户型图相似的方法是从户型图中抽取出墙壁的信息,对横向和纵向两个方向的墙壁分布进行比较,具体为:

步骤3-7-1)根据房屋H1、H2的URL,下载房屋H1、H2的户型图,并保存,设为image,按照步骤3-7-2)至3-7-10)的方法,分别计算H1、H2的户型图的墙壁信息;

步骤3-7-2)将image转换成分辨率为100*100的图片,设为image100;

步骤3-7-3)将image100转换成灰度图,设为grayimage100;

步骤3-7-4)计算grayimage100的灰度直方图h;

步骤3-7-5)从灰度直方图中抽取表示墙壁线的颜色值,具体为:从左往右扫描直方图h,寻找直方图h中第一个与邻近区域的差值超过设定阈值T6的灰度值g;

其中,阈值T6选取为50;

步骤3-7-6)将步骤3-7-5)中得到的灰度值g对灰度图grayimage100二值化,具体为:

遍历grayimage100的所有像素点,如果像素点的灰度值为p(i,j),计算p(i,j)y与g差的绝对值,若|g(i,j)-g|大于设定的阈值T7,将p(i,j)的灰度设为255,否则设为0;

其中,阈值T7选取为10;

步骤3-7-8)去掉户型图中“大面积”物体,具体为:

用特定大小“矩形”扫描户型图,计算矩形内灰度值为0的象素点数pcount,如果pcount超过设定阈值T8,则视为“大面积”物体,将其设为0;

其中,矩形的大小为5*5,阈值T8选取为16;

步骤3-7-9)计算户型图中的墙壁信息,具体方法为:

按行扫描二值化后的的灰度图,计算每行中灰度为0的象素点数,得到每行中灰度为0的象素点直方图rowHist;按列扫描二值化后的的灰度图,计算每列中灰度为0的象素点数,得到每列中灰度为0的象素点直方图colHist;

步骤3-7-10)扫描rowHist,计算rowHist中的凸点,该凸点表示户型图的墙壁,得到户型图墙壁分布序列wallSeq1;扫描colHist,计算colHist中的凸点,得到户型图墙壁分布序列wallSeq2;

其中,wallSeq1和wallSeq2中的元素是如下的序列对:

location,length

其中,location的值是rowHist(colHist)中凸点的位置,代表墙壁在户型图中的位置,length是rowHist(colHist)中凸点值,代表墙壁的长度;

步骤3-7-11)计算H1的wallSeq1和H2的wallSeq1的相似度,具体为:

步骤3-7-11A)设n1为H1的H1wallSeq1的序列对中元素个数,设n2为H2的H2wallSeq1的序列对中元素个数,i1表示H1的H1wallSeq1的序列对中待比较元素的位置,开始为0,i2表示H2的H2wallSeq1的序列对中待比较元素的位置,开始为0;m为H1wallSeq1、H2wallSeq1中相同的元素个数,开始为0;

步骤3-7-11B)判断i1和i2,若i1小于n1并且i2小于n2,则执行步骤3-7-11C),否则执行步骤3-7-11E);

步骤3-7-11C)计算墙壁位置差异度,具体采用公式(9)计算:

diff_location=|H1wallSeq1[i1].location-H2wallSeq1[i2].location| (9)

如果diff1小于阈值T9,i1加1,i2加1,并按照公式(10)计算墙壁长度差异,否则执行步骤3-7-11D):

diff_length=|H1wallSeq1[i1].length-H2wallSeq1[i2].length| (10)

如果diff_length小于阈值T10,则m加1;执行步骤3-7-11B);

其中,阈值T9选取为4,阈值T10选取为8;

步骤3-7-11D)如果H1wallSeq1[i1].Location小于H2wallSeq1[i2].Location则i1加1,否则i2加1;

执行步骤3-7-11B);

步骤3-7-11E)按照公式(11),计算H1wallSeq1和H2wallSeq1的相似度:

S1_1=m/max(n1,n2) (11)

其中max(n1,n2)表示n1和n2的较大值,如果n1等于n2,则为n1;

步骤3-7-12)按照步骤3-7-11的方法计算H1的wallSeq1和H2的wallSeq2的相似度S1_2,H1的wallSeq2和H2的wallSeq1的相似度S2_1,H1的wallSeq2和H2的wallSeq2的相似度S2_2;

步骤3-7-13)计算H1和H2的户型相似度,具体通过公式(12)、公式(13)计算:

S1=max(S1_1,S1_2); (12)

S2=max(S2_1,S2_2); (13)

步骤3-8)如果S1和S2都超过设定阈值T11,则判别为相同房屋,并更新房屋信息;

其中,max(S1_1,S1_2)表示S1_1和S1_2的较大值,如果S1_1等于S1_2,则为S1_1,max(S2_1,S2_2)表示S2_1和S2_2的较大值,如果S2_1等于S2_2,则为S2_1,阈值T11选取为0.8;

具体更新方法为:

设房屋H1的来源网站优先级为λ1,房屋H2的来源网站优先级为λ2,若λ1小于λ2,则将H1作为比中源,H2作为比中目标,保存到房屋查重表,否则将H2作为比中源,H1作为比中目标,保存到房屋查重表;

步骤3-9)凡是在房屋查重表的房屋比中目标字段出现的房屋都是重复房屋。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910242011.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top