一,分词系统地址:https://github.com/NLPchina/ansj_seg

二,为什么选择ansj?

1.项目需求:

我们平台要做手机售后的舆情分析,即对购买手机的用户的评论进行分析。分析出手机每个模块(比如:相机,充电等。这些大模块还需要细分,比如充电又可以分:充电慢,没有快充等)的好差评,并且计算差评率,供开发后续改进。之前一直是人工分析,随着评论的增加,这一块也是一个很大的工作量。因此我们想到了做评论的自动分析。这就要用到自然语言处理的技术了。

2.ansj的优点

分词效率高,支持自定义词典(这是最重要的,我们需要根据我们的业务自定义自己的词库,方便我们进行观点分析)

三,业务分析

首先这个系统肯定不能完全代替人工作,我们的目标是尽可能的减少人的工作量。通过统计源声发现,很多评论就一两句话。通过正则表达式把把评论分句。发现小于3句的评论占比将近70%。只要重点处理这种评论就行。把评论分句后,提取出名词和观点匹配。提取出形容词和情感匹配(好评或差评)。这就是评论分析的思路。

四,项目集成分析系统

1.引入jar包

<!-- nps 自然语言处理 --><dependency><groupId>org.nlpcn</groupId><artifactId>nlp-lang</artifactId><version>1.7.7</version><scope>compile</scope></dependency>

2.拷贝org.ansj包到src目录下

3.在resources目录下创建ansj_library.properties文件。这个文件项目里也有(注意这里要写绝对路径,不然会读不到自定义的文件。这是一个坑)

#path of userLibrary this is default library
#dic=library/default.dic
dic=D:/Lure_workspace/iFocusStruc/src/main/resources/library/default.dic
#path of crfModel
#crf_dic1=library/crf.model
userLibrary=D:/Lure_workspace/iFocusStruc/src/main/resources/userLibrary.dic
#stop_dic1=library/stop.dic#redress dic file path
#ambiguity=library/ambiguity.dic
ambiguity=D:/Lure_workspace/iFocusStruc/src/main/resources/library/ambiguity.dic
synonyms=library/synonyms.dic#set real name
isRealName=true#isNameRecognition default true
isNameRecognition=true#isNumRecognition default true
isNumRecognition=true#digital quantifier merge default true
isQuantifierRecognition=true

3.把library文件夹拷贝到resources目录下,(这个library文件夹项目中有)

自定义词典:default.dic

连网    n    8000
发热    n    80000
这是    n    1000

4.把resource目录拷贝到本地resource目录。

5.测试:ToAnalysis方法

@Testpublic void wordTest2333() {String str = "数据结构效果不好,连网太慢,发热严重";Result result = ToAnalysis.parse(str);List<Term> termList = result.getTerms();for (Term term : termList) {System.out.println(term.getName() + ":" + term.getNatureStr());}}

结果:   

数据结构:n
效果不好:a
,:w
连网:vn
太慢:d
,:w
发热:v
严重:a

数据结构:n    这个自定义的词生效了

连网:vn      没有生效

发热:v   没有生效

发现有问题,我明明把连网设置为了n,为什么还是vn。其实ToAnalysis只能使自定义的词在默认字典中不存在时,这个自定义的词才会生效(这个问题困扰了很久)。

测试二:DicAnalysis方法

@Testpublic void wordTest2333() {String str = "数据结构效果不好,连网太慢,发热严重";Result result = DicAnalysis.parse(str);List<Term> termList = result.getTerms();for (Term term : termList) {System.out.println(term.getName() + ":" + term.getNatureStr());}}

结果:

数据结构:n
效果不好:a
,:w
连网:n
太慢:d
,:w
发热:n
严重:a

可以看到我们已经实现自定义的词库中的词全部生效了。

转载于:https://www.cnblogs.com/inspred/p/9829750.html

项目集成自动分词系统ansj,实现自定义词库相关推荐

  1. Elasticsearch学习1 入门进阶 Linux系统下操作安装Elasticsearch Kibana 初步检索 SearchAPI Query DSL ki分词库 自定义词库

    文章目录 一.全文检索-Elasticsearch 1.Elasticsearch简介 2.全文搜索引擎 二.docker安装 1.elasticsearch启动 2.kibana启动 三.[入门]初 ...

  2. ios 输入法扩展_如何给iOS系统原生输入法导入词库

    一.越狱版 1. 设置 - 通用 - 键盘 - 文本替换 随便添加一条内容,例如"nihao 你好" 2. 在 iFile 或 iFilza 根目录下搜索"CloudUs ...

  3. 卡饭输入法制作和导入自定义词库

    卡饭输入法导入自定义词库 卡饭输入法下载 导入自定义词库 深蓝词库转换器 搜狗词库 制作词库 导入词库 转换好的搜狗词库[自取] 卡饭输入法下载 点击下载卡饭输入法 , 如果已经安装请跳过 导入自定义 ...

  4. ElasticSearch自定义词库

    由于网络词语层出不穷,ik分词器有时并不能完全识别网络词汇,如下: 按照网络词语,王者荣耀应该被识别为一个词语,而不是被拆分成2个. 所以这时需要自定义词库来解决以上问题. 自定义词库 自定义扩展词库 ...

  5. IK分词器使用自定义词库

    2019独角兽企业重金招聘Python工程师标准>>> 1.拷贝IKAnalyzer.cfg.xml到WEB-INF/classes下,拷贝IKAnalyzer2012FF_u1.j ...

  6. 白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库

    文章目录 概述 ik配置文件 IK自定义词库 自定义词库 Step1 : 新建自定义分词库 Step2 : 添加到ik的配置文件中 Step3 :重启es ,查看分词 自定义停用词库 Step1 : ...

  7. Elasticsearch 之(24)IK分词器配置文件讲解以及自定义词库

    1.ik配置文件 ik配置文件地址:es/plugins/ik/config目录 IKAnalyzer.cfg.xml:用来配置自定义词库 main.dic:ik原生内置的中文词库,总共有27万多条, ...

  8. 30_ElasticSearch IK分词器配置文件 以及自定义词库

    ElasticSearch IK分词器配置文件 以及自定义词库 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) ...

  9. ElasticSearch 中文分词器ik的安装、测试、使用、自定义词库、热更新词库

    文章目录 # 实验环境 # ik分词器的下载.安装.测试 ## 安装方法一:使用elasticsearch-plugin 安装 ## 安装方法二:下载编译好的包进行安装 1.下载 2.安装 3.重启` ...

最新文章

  1. 包含近 20 万本图书,OpenAI 级别的训练数据集上线
  2. GAN 为什么需要如此多的噪声?
  3. 皮一皮:这是传说盖浇饭中的天花板~白粥盖浇饭...
  4. ACM基础题 - 求矩形个数
  5. PHP的Excel操作
  6. 将jar文件转换成exe可执行文件[转]
  7. Ant步步为营(4)ant启动tomcat
  8. python 生成图片_python生成带有表格的图片
  9. Spring MVC 实践 - Base
  10. NLP系列学习:CRF条件随机场(1)
  11. mysql怎么初始化自增值_MySQL 重置自增值
  12. 基于php校园失物招领,校园失物招领系统设计
  13. LeetCode(21)——合并两个有序链表(JavaScript)
  14. gateway配置mysql_gateway中这样使用mysql正确么
  15. 140:Bandwidth
  16. centos7上安装phpcms
  17. Mac 使用rz sz 命令
  18. 使用python处理视频文件,提取关键帧并保存【已调通】
  19. 总结一下__declspec(dllimport)的作用
  20. 【STM32学习笔记-03】ESP8266 访问心知天气API获取实时天气信息

热门文章

  1. ros与下位机通信常用的c++ boost串口应用
  2. struts上传文件 血案
  3. 八、mini2440裸机程序之UART(2)UART0与PC串口通信【转】
  4. HTTP协议基础解读
  5. 微软职位内部推荐-SDEII for Windows Phone Apps
  6. 《自适应软件开发》—从奴隶主到领袖 4 领导—协作
  7. 字符串截取,对数字,英文,汉字都可以
  8. Memcache的部署和使用
  9. django 自定义日志配置
  10. MySQL的EXPLAIN的SELECT TYPE