首页 > 其他分享 >收货地址智能解析

收货地址智能解析

时间:2022-08-15 14:00:24浏览次数:62  
标签:号楼 营山县 15521950357 收货 60 地址 彭大哥 解析 1901

收货地址智能解析

简介

用于根据文本自动解析出收货信息。

使用

解析用户地址信息-parseUserInfo


class SmartParseTest {
    @Test
    void parseUserInfo() {

        SmartParse smartParse = new SmartParse(new LocalDataAddressDataLoader());
        
        List<String> textList = new ArrayList<>();
        textList.add("姓名:彭大哥 电话:15521950357 地址:四川南充市营山县城南镇顺安街60号楼1901");
        textList.add("姓名:彭大哥 电话:15521950357 所在地区: 四川南充市营山县城南镇 详细地址: 顺安街60号楼1901");
        textList.add("收货人: 彭大哥 手机号码: 15521950357 所在地区: 四川南充市营山县城南镇 详细地址: 顺安街60号楼1901");
        textList.add("四川南充市营山县城南镇顺安街60号楼1901 15521950357 彭大哥");
        for (String text : textList) {
            UserInfo userInfo = smartParse.parseUserInfo(text);
            System.out.println(JSONUtil.toJsonStr(userInfo));
        }
    }
    
}

输出结果

{"address":"城南镇顺安街60号楼1901","city":"南充市","mobile":"15521950357","county":"营山县","areaId":"34325","province":"四川省","name":"彭大哥"}
{"address":"城南镇顺安街60号楼1901","city":"南充市","mobile":"15521950357","county":"营山县","areaId":"34325","province":"四川省","name":"彭大哥"}
{"address":"城南镇顺安街60号楼1901","city":"南充市","mobile":"15521950357","county":"营山县","areaId":"34325","province":"四川省","name":"彭大哥"}
{"address":"城南镇顺安街60号楼1901","city":"南充市","mobile":"15521950357","county":"营山县","areaId":"34325","province":"四川省","name":"彭大哥"}

解析地址信息-parseAddressInfo

此方法只解析地址信息,不会解析姓名和手机电话

数据来源-AddressDataLoader

数据来源提供了可扩展接口,可以根据自己项目的地址数据加载解析扩展,也可以使用默认提供的 LocalDataAddressDataLoader

  • LocalDataAddressDataLoader会自动加载resources/areaData.json数据源,此数据与2022年1月左右在高德开发平台采集

扩展示例

import java.util.List;

@Configuration
public class ApplicationConfig {

    @Bean
    public SmartParse smartParse(AddressDataLoader addressDataLoader) {
        return new SmartParse(addressDataLoader);
    }

    @Bean
    @Autowired
    public AddressDataLoader addressDataLoader(AreaService areaService) {
        return new AddressDataLoader() {
            private final Cache<Integer, List<Address>> cache = CacheUtil.newFIFOCache(1);

            @Override
            public List<Address> loadData() {
                List<Address> data;
                // ...
                return data;
            }
        };
    }

}

git地址https://gitee.com/suker-liang/smart-parse.git

标签:号楼,营山县,15521950357,收货,60,地址,彭大哥,解析,1901
From: https://www.cnblogs.com/MichaelPL/p/16588046.html

相关文章

  • python解析字符串中的省市区字符串
    #python解析字符串中的省市区字符串#str4="XX省XX市辛桥乡赵庄村XX号"#str4="XX省XX市XX区八卦二路XX号XX栋XX楼"#str4="XX市XX区老山东里XX栋XX门XX号"#str4......
  • vue源码解析
    先进行语义解析各种vue命令生成模板语法树,再根据模板语法树使用createRender函数(render函数可使用自己定义的)创建render函数,在创建的同时使用闭包(函数柯里化)将模板语法......
  • 什么是预解析
    预解析就是当前作用域的代码执行之前,会把var和function声明的变量提升到代码的最前面;即变量提升和函数提升;变量提升:只提升声明不提升赋值;函数提升:只提升函数声明,不......
  • python 解析from-data数据
    最近在自己尝试使用python基于wsgiref写小型后端框架时需要从前端上传文件到后台,那么要在前端表单中需要添加enctype="multipart/form-data"这样后台拿到的数据不能使用......
  • 深入理解Spring注解机制(二):元注解解析与属性映射
    前言众所周知,spring从2.5版本以后开始支持使用注解代替繁琐的xml配置,到了springboot更是全面拥抱了注解式配置。平时在使用的时候,点开一些常见的等注解,会发现往往......
  • [2000年NOIP普及组] 税收与补贴问题(样例解析)
    开始。首先,我们用题目给的样例数据,做成如下的数据表。既不补贴,也不加税。  可见这时商家卖33元是利润最大的,400元。下面,我们动用税和补贴,最终要使得商家卖31元的时候利......
  • Ubuntu 20.04 配置静态IP地址
    vim/etc/netplan/00-installer-config.yaml#Thisisthenetworkconfigwrittenby'subiquity'network:ethernets:ens160:dhcp4:noaddresse......
  • C#enum枚举解析(含IL解析)
    enum枚举用于存储命名的和神奇的内容。一般在collection、if和switch中使用enum枚举。Enum枚举:思考一下,一个项目存储有代表性的花,花可能会有紫色的颜色,一个枚举可以代表......
  • 关于重绘和回流的解析
    重绘和回流:repaint(重绘),repaint发生更改时,元素的外观被改变,且在没有改变布局的情况下发生,如改变outline,visibility,backgroundcolor,不会影响到dom结构渲染。reflow(......
  • CAN解析
    0.前言1.CAN报文解析报文组成一般CAN总线调试工具会显示下面几个参数,比较全的情况下序号通道方向帧格式帧类型数据长度帧ID帧数据时间以我平时用的工......