一个好的方案可以帮助您实现复杂数据源中单元信息的精确规范化

频道:闲鱼技术 日期: 浏览:375
容忍鱼类技术沃尔玛临沧rototiller

微信号:ccjun91
添加微信群,试用软件
复制微信号

社区是租赁业务中非常重要的信息。它可以反映房屋的位置和质量。对于租户来说,能否浏览准确的社区信息是高效找到房子的关键。因此,收集和显示准确的社区信息是提高用户找房效率的一个重要方面。为了获取全面的社区信息,租赁业务通常依赖各种数据源来获取社区数据。这些数据格式不同,信息混乱,包含大量冗余信息。为了提高找房效率,需要对同一社区的不同数据进行汇总,明确社区信息之间的隶属关系。本文抓住社区的独特性,利用相似度算法设计了一种基于文本匹配的方法来解决这个问题。

现有社区数据中有许多重复的社区,如“福鼎家”、“福鼎家小凤园”、“3单元、2楼、福鼎家园”、“西溪北苑西区”、“西溪北苑东区”等。虽然这些社区的名称并不完全相同,但其中一些社区指的是同一社区或同一社区的子社区。我们称这些社区为同义社区,如“福鼎家园”、“福鼎家园小峰花园”和“单元3、2楼、福鼎家园”。指整个社区的母社区,如福鼎家园、西溪北苑。代表社区以下部分区域的称为子社区,如福鼎嘉园晓风花园和西溪北园东区。社区地址,如“单元3,2楼,福鼎家园”被称为建筑地址。

为了准确高效地搜索和显示房屋信息,我们需要分析每个单元数据对应的单元信息,以及单元之间的层次关系,甚至补充一些单元信息。具体来说,一个是将现有社区统一为子社区:子社区处于阶段、小区和花园级别,如“福鼎嘉园晓风花园”和“福鼎嘉园玉路花园”:1个子社区是单元、建筑和建筑的上层:单元、建筑、建筑和x楼等名称属于社区建筑;2.每个子社区都有一个独特的父社区。例如,子社区“福鼎家园晓风花园”的母社区是“福鼎家园”;第二,可以补充父细胞和子细胞信息:可以补充细胞库中不存在的父细胞或子细胞信息;

作为唯一的地址单元,该单元具有以下特征:

子单元的父单元通常是多个子单元中最长的公共前缀:单元命名是一种层次结构,同一父单元的子单元通常具有相同的前缀,这符合人们对位置的命名习惯;街道和住宅楼的名称具有独特的特点:例如,大多数街道都符合这样的模式:“p p[w w|x|y|z]区”、“p[w|x|y]阶段”、“p[w|x|y]否”和“p[w | x | y]块”等。其中p是公共前缀,即虚拟父单元的确定名称。w代表数字,x代表代表数字的汉字,y代表大小写字母,z代表位置词(如东、西、南、北、东北、西北等)。住宅楼地址通常采用以下形式:“p[w w | x | y]楼”、“p[w | x | y]楼”、“p[w | x | y]楼”、“p[w | x | y]单元”和“p[w | x | y]楼”

(p是子单元的名称,w、x、x和y代表与上述相同的含义);作为一个相对较小的地址单元,一个小区的范围较小,同一小区的不同子小区之间的距离不能太远;同一细胞的不同子细胞的名称通常非常相似。

基于以上观察,我们提出了一种基于前缀匹配和文本相似性的单元规范化方案。基本思想是

采用前缀匹配算法对单元格进行聚类,计算文本相似度,增加距离权重进行进一步筛选,最终识别出父子单元格。

我们根据城市、地区、社区名称和经纬度信息确定社区。所有单元数据都存储在一个表p l o t中:单元id、城市、地区、单元名称、单元g p s、源s o r c e(标记单元的源)、类型t y p e(0代表父单元,1代表虚拟父单元,2代表子单元,3代表建筑地址)和父单元id。我们需要对原始细胞数据进行预处理:

原始数据需要处理:城区格式与杭州、余杭区相似;一些小区gps为非高德gps,需要转换为高德gps。一些单元数据只有省市街道和社区的名称,没有具体的区域和经纬度信息。需要使用地图提示进行校正,以尽可能地完成面积和经纬度信息。为了干扰我们的分析,单元格名称也会与许多标点符号混合,我们将首先删除这些标点,只分析汉字的匹配

小区信息规范化流程如下图所示:

其主要思想是使用前缀匹配算法对细胞进行匹配,得到近似细胞树,然后过滤出同一近似细胞树中不合适的细胞,然后根据相似算法对细胞树进行匹配,然后合并同义细胞树,得到最终的规范化细胞树,模式匹配可以用来识别每个细胞树中的父子细胞。以下重点介绍了前四个步骤。

如前所述,同一父单元格的大多数子单元格都有相同的前缀。我们以此为起点来确定近似的单元格。具体方法如下:

对于同一城市同一区域内的每个单元格,从其名称的前两个单词开始搜索所有单元格。这些单元有一个共同的前缀,称为近似单元树,以单元为根。找到所有近似单元树,连续增加前缀长度,将近似单元树拆分为较小的树,并在适当时停止增加前缀长度。最后,每个细胞树中的细胞都是近似细胞,可以提取父细胞和子细胞。但是如何确定最大前缀长度呢?分为以下几种情况:

如果可以判断该单元的名称是子单元或建筑,则直接提取父单元的名称。如果没有同名的父单元格,则创建一个新的父单元格名称,然后搜索所有以父单元格名称为前缀的单元格,形成一个以父单元格为根的近似单元格树;判断社区名称是代表子社区还是社区建筑的方法是通过定期匹配上述社区名称。

 

如果有其他以该单元格为前缀的单元格,则该单元格将被视为父单元格,所有以该单元格为前缀的单元格将聚集在一起。下图显示了案例1和案例2的示例。蓝色是父单元格,红色是建筑地址,黄色是子单元格:

对于其他单元,前缀长度应根据以下原则确定:前缀长度的单元数量不得超过20个(不包括重复单元和具有完全相同的城市、地区和单元名称的单元)。一般来说,一个细胞中没有太多的亚细胞。一个父细胞拥有超过20个子细胞是非常罕见的。例如,如下图所示,无法将社区“翡翠城木兰花园”识别为子社区或建筑地址。它的近似群落树是依靠前缀得到的。树的数量少于20,前缀增长停止。

如果对每个单元执行此操作,将得到对应于每个单元的前缀树,也称为单元树(使用前缀树实现)。这个细胞被称为细胞树的根。很容易知道一个细胞可能位于多个细胞树中。在此过程中,还可以识别一些住宅楼、子住宅区和父住宅区。

本质上,这一步就是文本聚类的过程。如下图所示,文本聚类通常会对文本单词进行划分,然后使用TF-IDF(t e r m f r e q e n c y-i n v e r s e d o c u m e n t f r q e n c y,单词频率反文本频率)计算单词频率,设置单词权重,然后构造VSM(VS m,向量空间模型),为每个文本构造等长向量,最后设置度量(欧氏距离、余弦相似性等)并使用聚类算法对文本进行聚类。

这种方法不适合我们的场景:1这种方法通常会对包含多个特征词的文档进行聚类,但单元名称较短,因此很难提取有效的特征词;2.社区名称有一个明显的特点,即亲子社区的名称与建筑编号之间存在着顺序关系。然而,这一特性在文本矢量化聚类算法中不能得到体现和应用;3.常见的聚类算法,如k-MEANS,需要技巧和探索来选择合适的k值,但我们的方法通过使用子单元数量不太大的事实来避免这个问题。

上一步得到的是一个前缀相同的单元树。根据前缀,我们圈出大量单元格。许多不属于同一父单元的单元被选择到同一单元树中。一般来说,一个细胞的不同子细胞之间的距离不会太远。因此,我们过滤掉了偏远社区。具体而言,如果近似单元树中的单元a与单元树的根单元之间的距离大于2km,则从单元树中删除该单元。

并非所有同义单元格都有相同的后缀。因此,我们还使用文本相似性来补充一些缺失的同义单元:

计算近似树前缀的编辑距离和g p s距离。对于g-p-s距离小于1km且相似度大于2的近似树,它们可以组合成同义细胞树。相似性的计算如下:

其中a和b分别是两个细胞树的根细胞的名称,MA x(a,b)是a和b的最大长度,Le v e n s h t e in d is t a n c e(a,b)是编辑距离,s i m i l a r t y(a,b)越大表示a和b越相似。

如上图所示,“西溪风格”不是“大华西溪风格”的前缀,因此在第一步的前缀匹配聚合中,它没有被添加到“大华西溪风格”的近似群落树中。鉴于这个前缀不能覆盖,我们计算出“西式”和“大华西式”之间的相似性为3。这种相似性表明文本的总长度是文本差异的倍数。它越大,相对差异越小。当相似度大于2时,我们合并两棵相似的树。

将每个细胞作为根并收集相应的细胞树后,细胞树之间会有很多重叠。在此步骤中,合并具有交集的单元树,以获得最终的单元规范化结果。合并单元树中的单元可视为同义单元。这一步可以说是细胞正常化的最后一步。

利用高德图中同义细胞的数据和人工识别来衡量细胞归一化算法的准确性。主要从两个方面:

f a l s e p o s i t v e s:无法识别最初属于父单元的子单元;阴性错误识别(f a l s e n e g a t i v e s):不属于父细胞但被错误识别为父细胞的子细胞的子细胞;

数据表明,本文算法的正错误率小于8%,负错误率小于5%,表明该归一化方法的准确性是有保证的。

通过观察细胞名称和层次关系的规律,提出了一种利用文本匹配和近似分析解决细胞信息规范化问题的方法。该方法实现简单,准确率高,能够快速识别相似社区,为提高列表搜索效率和列表发布的准确性提供了基础数据保障。

短视频宝宝=慢?阿里巴巴的工程师们就在这样一秒钟内打开了路由管理代码的短视频。阿里巴巴工程师如何高效地解决这个问题?(实用)我要告诉大家的是,关于FL-u-t-r的初始化过程,在FL-u-t-r中嵌入n-a-t-v-e组件的正确姿势是,没有补给的闲置鱼类的做法是什么,以及如何做到这一点?游手好闲的鱼没有货源。闲置市场规模超过万亿。二手电子商务迎来了循环经济的红利。“校园圈”真的能成为游鱼生长的第二个引擎吗?

复制成功

微信号: ccjun91
添加微信群,试用软件

我知道了
添加微信

微信号: ccjun91
添加微信群,试用软件

一键复制加过了
18749471747
微信号:ccjun91添加微信
ccjun91