• hanlp中文智能分词自动识别文字提取实例


    需求:客户给销售员自己的个人信息,销售帮助客户下单,此过程需要销售人员手动复制粘贴收获地址,电话,姓名等等,一个智能的分词系统可以让销售人员一键识别以上各种信息

    经过调研,找到了一下开源项目

    1word 分词器

    2ansj 分词器

    3mmseg4j 分词器

    4ik-analyzer 分词器

    5jcseg 分词器

    6fudannlp 分词器

    7smartcn 分词器

    8jieba 分词器

    9stanford 分词器

    10hanlp 分词器

    最后选择了hanlp,步骤官网都有,下面演示智能匹配地址

    1   List<Term> list = HanLP.newSegment().seg("汤姆江西省南昌市红谷滩新区111号电话12023232323");

    2    System.out.println(list);

    输出

    1   [汤姆/nrf, 江西省/ns, 南昌市/ns, 红谷滩/nz, 新区/n, 111/m, /q, 电话/n, 12023232323/m]

    大公告成,不过前提必须下载那个600Mdata包并导入,才可以识别地址,否则只是做了初步的识别

    附上完整代码

       1     String str = "汤姆   江西省南昌市红谷滩新区111号     12023232323";

       2     String address = "";

       3     String phone = "";

       4     String name = "";

       5     List<Term> terms = NLPTokenizer.segment(str);

       6     System.out.println(terms);

       7     for (Term term : terms) {

       8         if (term.nature.startsWith("nr")){

       9             //nr代表人名

       10             name = term.word;

       11             System.out.println("name: " + term.word);

       12         }else if (term.nature.startsWith("m") && term.word.length() == 11){

       13             //m代表数字

        14            phone = term.word;

        15            System.out.println("电话: " + term.word);

        16        }

        17    }

        18    //由于地址包含了数字,解析的时候数字成为单独的个体,与实际不符,所以通过差集求出地址

        19    address = str.replace(phone, "").replace(name, "").trim();

        20    System.out.println("address: " + address);

    运行结果

    1    name: 汤姆

    2    电话: 12023232323

    3    address: 江西省南昌市红谷滩新区111

    ---------------------

    作者:qq37755661

     

  • 相关阅读:
    团队-团队编程项目作业名称-最终程序
    《团队-中国象棋-项目总结》
    课后作业-阅读任务-阅读提问-4
    《20171130-构建之法:现代软件工程-阅读笔记4》
    《软件工程课程总结》
    《20171117-构建之法:现代软件工程-阅读笔记-3》
    -课后作业-阅读任务-阅读提问-3
    《团队-中国象棋-团队一阶段互评》
    《团队-中国象棋-开发文档》
    《结对-贪吃蛇-结对项目总结》
  • 原文地址:https://www.cnblogs.com/adnb34g/p/10042963.html
Copyright © 2020-2023  润新知