项目结构

该项目中,.jar和data文件夹和.properties需要从官网/github下载,data文件夹下载

项目配置

修改hanlp.properties:

1 #/Test/src/hanlp.properties:

2 #本配置文件中的路径的根目录

3 #root=E:/SourceCode/eclipsePlace/Test

4 root=./

5 ......

配置文件的作用是告诉HanLP数据包即data文件夹的位置,root的值为data文件夹的父目录,可以使用绝对路径或相对路径。

测试代码

1 package com.test;

2

3 import java.util.List;

4

5 import com.hankcs.hanlp.HanLP;

6 import com.hankcs.hanlp.seg.common.Term;

7 import com.hankcs.hanlp.suggest.Suggester;

8 import com.hankcs.hanlp.tokenizer.NLPTokenizer;

9

10 public class MainTest {

11    public static void main(String[] args) {

12        System.out.println("首次编译运行时,HanLP会自动构建词典缓存,请稍候……\n");

13        //第一次运行会有文件找不到的错误但不影响运行,缓存完成后就不会再有了

14        System.out.println("标准分词:");

15        System.out.println(HanLP.segment("你好,欢迎使用HanLP!"));

16       System.out.println("\n");

17

18        List<Term> termList = NLPTokenizer.segment("中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程");

19       System.out.println("NLP分词:");

20        System.out.println(termList);

21        System.out.println("\n");

22

23        System.out.println("智能推荐:");

24        getSegement();

25        System.out.println("\n");

26

27        System.out.println("关键字提取:");

28        getMainIdea();

29        System.out.println("\n");

30

31       System.out.println("自动摘要:");

32      getZhaiYao();

33        System.out.println("\n");

34

35        System.out.println("短语提取:");

36        getDuanYu();

37        System.out.println("\n");

38    }

39

40    /**

41      * 智能推荐部分

42     */

43    public static void getSegement() {

44        Suggester suggester = new Suggester();

45        String[] titleArray = ("威廉王子发表演说 呼吁保护野生动物\n" + "《时代》年度人物最终入围名单出炉 普京马云入选\n" + "“黑格比”横扫菲:菲吸取“海燕”经验及早疏散\n"

46                + "日本保密法将正式生效 日媒指其损害国民知情权\n" + "英报告说空气污染带来“公共健康危机”").split("\\n");

47       for (String title : titleArray) {

48          suggester.addSentence(title);

49       }

50       System.out.println(suggester.suggest("发言", 1)); // 语义

51       System.out.println(suggester.suggest("危机公共", 1)); // 字符

52       System.out.println(suggester.suggest("mayun", 1)); // 拼音

53   }

54

55   /**

56    * 关键字提取

57    */

58   public static void getMainIdea() {

59       String content = "程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。";

60       List<String> keywordList = HanLP.extractKeyword(content, 5);

62       System.out.println(keywordList);

63   }

64

65  /**

66    * 自动摘要

67    */

68   public static void getZhaiYao() {

69       String document = "算法可大致分为基本算法、数据结构的算法、数论算法、计算几何的算法、图的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法、厄米变形模型、随机森林算法。\n"

70               + "算法可以宽泛的分为三类,\n" + "一,有限的确定性算法,这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。\n"

71               + "二,有限的非确定算法,这类算法在有限的时间内终止。而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。\n"

72              + "三,无限的算法,是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。";

73       List<String> sentenceList = HanLP.extractSummary(document, 3);

74       System.out.println(sentenceList);

75   }

76

77   /**

78    * 短语提取

79    */

80   public static void getDuanYu() {

81       String text = "算法工程师\n"

82               + "算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法工程师就是利用算法处理事物的人。\n"

83              + "\n" + "1职位简介\n" + "算法工程师是一个非常高端的职位;\n" + "专业要求:计算机、电子、通信、数学等相关专业;\n"

84               + "学历要求:本科及其以上的学历,大多数是硕士学历及其以上;\n" + "语言要求:英语要求是熟练,基本上能阅读国外专业书刊;\n"

85               + "必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。\n" + "\n" + "2研究方向\n"

86              + "视频算法工程师、图像处理算法工程师、音频算法工程师 通信基带算法工程师\n" + "\n" + "3目前国内外状况\n"

87              + "目前国内从事算法研究的工程师不少,但是高级算法工程师却很少,是一个非常紧缺的专业工程师。算法工程师根据研究领域来分主要有音频/视频算法处理、图像技术方面的二维信息算法处理和通信物理层、雷达信号处理、生物医学信号处理等领域的一维信息算法处理。\n"

88              + "在计算机音视频和图形图像技术等二维信息算法处理方面目前比较先进的视频处理算法:机器视觉成为此类算法研究的核心;另外还有2D转3D算法(2D-to-3D conversion),去隔行算法(de-interlacing),运动估计运动补偿算法(Motion estimation/Motion Compensation),去噪算法(Noise Reduction),缩放算法(scaling),锐化处理算法(Sharpness),超分辨率算法(Super Resolution),手势识别(gesture recognition),人脸识别(face recognition)。\n"

89            + "在通信物理层等一维信息领域目前常用的算法:无线领域的RRM、RTT,传送领域的调制解调、信道均衡、信号检测、网络优化、信号分解等。\n" + "另外数据挖掘、互联网搜索算法也成为当今的热门方向。\n"

90            + "算法工程师逐渐往人工智能方向发展。";

91    List<String> phraseList = HanLP.extractPhrase(text, 10);

92    System.out.println(phraseList);

93 }

94 }

运行结果

转载自

Hanlp在java中文分词中的使用介绍相关推荐

  1. java中文分词的简单实现

    java中文分词的简单实现 中文分词 算法 算法思路 算法实现 代码及注释 评价 结语 中文分词 通俗来讲,中文分词是指将一句中文句子中的所有中文词汇相互分隔开来.它是文本挖掘的基础,有着十分广阔的应 ...

  2. 开源 Java 中文分词器 Ansj 作者孙健专访

    Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高. 在线演示: http://ansj.sdap ...

  3. Java中文分词组件 - word分词(skycto JEEditor)

    转自:https://my.oschina.net/apdplat/blog/228619#OSC_h4_8 Java分布式中文分词组件 - word分词 word分词是一个Java实现的分布式的中文 ...

  4. 中文分词中的战斗机-jieba库

    英文分词的第三方库NLTK不错,中文分词工具也有很多(盘古分词.Yaha分词.Jieba分词等).但是从加载自定义字典.多线程.自动匹配新词等方面来看. 大jieba确实是中文分词中的战斗机. 请随意 ...

  5. 基于python中jieba包的中文分词中详细使用(一)

    文章目录 基于python中jieba包的中文分词中详细使用(一) 01.前言 02.jieba的介绍 02.1 What 02.2特点 02.3安装与使用 02.4涉及到的算法 03.主要功能 03 ...

  6. 基于python中jieba包的中文分词中详细使用(二)

    文章目录 基于python中jieba包的中文分词中详细使用(二) 01.前言 02.关键词提取 02.01基于TF-IDF算法的关键词提取 02.02词性标注 02.03并行分词 02.04Toke ...

  7. 基于python中jieba包的中文分词中详细使用

    基于python中jieba包的中文分词中详细使用(一) 01.前言 之前的文章中也是用过一些jieba分词但是基本上都是处于皮毛,现在就现有的python环境中对其官方文档做一些自己的理解以及具体的 ...

  8. HMM模型及其在中文分词中的应用

    HMM模型及其在中文分词中的应用 马尔可夫模型 有限状态集 s s s 初始时刻的状态概率分布 π \pi π 状态转移概率矩阵 A A A 马尔可夫模型实例 隐马尔可夫模型 观测集 V V V 发射 ...

  9. 基于 HanLP 的 ES 中文分词插件

    一.分词插件 1.分词器概念 在 ES 中,分词器的作用是从文本中提取出若干词元(token)来支持索引的存储和搜索,分词器(Analyzer)由一个分解器(Tokenizer).零个或多个词元过滤器 ...

最新文章

  1. H5 画布解决跨域问题,画布保存为图片显示在页面上
  2. C++ ODB 框架(未实践使用)
  3. 人工智能最佳学习实践
  4. 关于整型数据符号位扩展的问题
  5. 快速数据库框架_快速学习新的数据科学概念的框架
  6. svn移动目录时如何保留原来的日志
  7. 探究数字内容生产商机,把握未来内容生产脉搏
  8. MFC不能用UpdateData的解决方法
  9. mysql 根据子查询的结果查询朱标_Python - MySQL数据库操作
  10. esp8266 扫描wifi_基于ESP8266与QT的智能家居控制系统设计
  11. 华为电脑终于又能搭载正版 Windows 系统了!
  12. 三.apache 网页重写 squid
  13. ng-repeat动态生成的DOM如何获取宽度(封装好的方法)
  14. 魔百盒UNT403A UNT413A 卡刷精简固件-芯片S905L3
  15. ZKTeco live20R指纹采集识别适配谷歌浏览器
  16. 关于多元正态分布的条件概率密度
  17. zblog如何调用HTML,Zblog教程:模板文件与调用标签详细说明
  18. 云点域名-(域名解析、域名转向、二级域名、动态域名)的功能介绍
  19. 语c语言描写,语c动作描写
  20. 微信小程序 界面禁止下拉 左右滑动_微信 iOS 版更新,带来了这些新功能

热门文章

  1. 疫情过后,对医疗AI行业带来的机遇
  2. SAP MM 明明有维护源清单,还是不能下PO?
  3. 海康威视 AI Cloud 软硬件平台
  4. 外媒:Facebook新发展方向或模仿微信
  5. 线性规划的原始对偶算法
  6. 【综述专栏】自动驾驶中可解释AI的综述和未来研究方向
  7. Hinton口中破解宇宙终极秘密的GPT-3厉害在哪?这有篇涂鸦详解
  8. 中国科协发布20个重大科学问题和工程技术难题
  9. 无人驾驶产业发展现状及影响
  10. 著名物理学家斯蒂芬•霍金去世,他曾告诫人类要学会避免人工智能可能的风险