geocoding

geocoding

Java地址标准化与相似度计算库

Geocoding是一个Java开源库,专注于地址标准化和相似度计算。它可以将不规范的文本地址标准化,并计算地址间的相似度。该项目采用国家标准地址库,结合倒排索引和最大长度优先匹配等技术,实现高效准确的地址处理。Geocoding使用IK Analyzer进行分词,采用余弦相似度算法计算地址相似度。它支持自定义地址文件和设置,适用于物流、电商等需要大规模地址数据处理的领域。

地理编码地址标准化相似度计算行政区域地址解析Github开源项目

项目阶段 Java 8 CI Maven Central

简介

本项目旨在将不规范(或连续)的文本地址尽可能标准化,并计算两个地址之间的相似度

地理编码技术主要包括以下步骤:

  • 地址标准库
  • 地址标准化
  • 相似度计算

pom

<dependencies> <dependency> <groupId>org.bitlap</groupId> <artifactId>geocoding</artifactId> <version>1.3.1</version> </dependency> </dependencies>

1. 数据测试

方法调用:Geocoding

  • normalizing:标准化
  • analyze:解析成分词文档
  • similarity:相似度计算
  • similarityWithResult:相似度计算,返回包含更多丰富数据

1.1 标准化

>> 输入:山东青岛市北区山东省青岛市市北区水清沟街道九江路20号大都会3号楼2单元1303 >> 输出: Address( provinceId=370000000000, province=山东省, cityId=370200000000, city=青岛市, districtId=370203000000, district=市北区, streetId=370203030000, street=水清沟街道, townId=null, town=null, villageId=null, village=null, road=九江路, roadNum=20, buildingNum=3号楼2单元1303, text=大都会 )
>> 输入:上海上海宝山区宝山区【新沪路5811-802 水韵华庭 】 (水韵华庭附近) >> 输出: Address( provinceId=310000000000, province=上海, cityId=310100000000, city=上海市, districtId=310113000000, district=宝山区, streetId=null, street=null, townId=null, town=null, villageId=null, village=null, road=新沪路, roadNum=58, buildingNum=11-802, text=水韵华庭水韵华庭附近 )
  • 返回对象说明
    • province相关:省
    • city相关:市
    • district相关:区、县
    • street相关:街道
    • town相关:乡镇
    • village相关:村
    • road:道路
    • roadNum:路号
    • buildingNum:建筑物号
    • text:标准化后未匹配的地址。通常包含小区、商场名称等信息

注:如果对text的结果不太满意,比如出现重复或不准确,可以通过分词方法解决

1.2 相似度

>> 输入: 浙江金华义乌市南陈小区82 浙江金华义乌市稠城街道浙江省义乌市宾王路99号后面南陈小区82>> 输出: 0.8451542547285166
>> 输入: 山东省沂水县四十里堡镇东艾家庄村206 浙江金华义乌市南陈小区82>> 输出: 0.0

1.3 自定义地址文件设置

// 加载自定义地址文件 val geocoding = GeocodingX("region_2021.dat") // 添加自定义区县"临平区" geocoding.addRegionEntry(330113000000, 330100000000, "临平区", RegionType.District, "", true) // 保存自定义字典文件 geocoding.save("xxx.dat")

1.4 自定义地址设置

// 100000000000 代表中国的ID Geocoding.addRegionEntry(88888888, 100000000000, "尼玛省", RegionType.Province) Geocoding.addRegionEntry(8888888, 88888888, "尼玛市", RegionType.City) Geocoding.addRegionEntry(888888, 8888888, "泥煤市", RegionType.District) >> 输入:中国尼玛省尼玛市泥煤市泥煤大道888号xxx >> 输出: Address( provinceId=88888888, province=尼玛省, cityId=8888888, city=尼玛市, districtId=888888, district=泥煤市, streetId=null, street=null, townId=null, town=null, villageId=null, village=null, road=泥煤大道, roadNum=888, buildingNum=null, text=xxx )

提示:可以从"国家标准地址库"中获取"父级城市ID"

2. 说明

2.1 标准地址库

项目目前采用的是淘宝物流4级地址(已过期,可通过淘宝收货地址获取实际调用地址)的标准地址库,也可以采用"国家的标准地址库"(对应的GitHub仓库,中国5级行政区域MySQL库)。

导入中国5级行政区域MySQL库注意事项

参考文档

2.2 标准地址库(兼容本项目)

标准库文件描述参考感谢
region_2021.dat国家标准地址库2021ISSUE-163TsLenMoweijiang.lin

使用方式:将文件下载到classpath,使用自定义的GeocodingX类即可。

2.3 标准化

  1. 首先基于正则表达式提取出道路、建筑物号等信息
  2. 省市区等匹配
    1. 将标准的地址库建立倒排索引
    2. 从文本起始位置开始,采用最大长度优先的方式匹配所有词条
    3. 对所有匹配结果进行标准行政区域从属关系校验

2.4 相似度计算

  1. 对输入的两个地址进行标准化
  2. 对省市区等信息分配不同的权重
  3. 对道路号、建筑号进行语义处理,分配权重
  4. 对剩余文本(text)使用IK Analyzer进行分词
  5. 对两个结果集使用余弦相似度算法计算相似度

本项目参考了address-semantic-search,简化了流程,修复了各种不规则错误,使得使用更加方便。

感谢

发布日志

更新日志

许可证

MIT

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多