原标题:Java中文分词hanlp使用

HanLP介绍:http://hanlp.linrunsoft.com/

github地址:https://github.com/hankcs/HanLP

说明:使用hanlp实现分词、智能推荐、关键字提取、摘要等,更多功能参考官网

项目结构

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

项目配置

修改hanlp.properties:

#/Test/src/hanlp.properties:

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

#root=E:/SourceCode/eclipsePlace/Test

root=./

......

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

测试代码

package com.test;

import java.util.List;

import com.hankcs.hanlp.HanLP;

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

import com.hankcs.hanlp.suggest.Suggester;

import com.hankcs.hanlp.tokenizer.NLPTokenizer;

public class MainTest {

public static void main(String[] args) {

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

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

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

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

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

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

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

System.out.println(termList);

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

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

getSegement();

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

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

getMainIdea();

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

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

getZhaiYao();

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

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

getDuanYu();

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

}

/**

* 智能推荐部分

*/

public static void getSegement() {

Suggester suggester = new Suggester();

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

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

for (String title : titleArray) {

suggester.addSentence(title);

}

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

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

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

}

/**

* 关键字提取

*/

public static void getMainIdea() {

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

List keywordList = HanLP.extractKeyword(content, 5);

System.out.println(keywordList);

}

/**

* 自动摘要

*/

public static void getZhaiYao() {

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

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

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

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

List sentenceList = HanLP.extractSummary(document, 3);

System.out.println(sentenceList);

}

/**

* 短语提取

*/

public static void getDuanYu() {

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

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

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

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

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

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

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

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

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

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

List phraseList = HanLP.extractPhrase(text, 10);

System.out.println(phraseList);

}

}

运行结果

文章来源于lsh呵呵的博客返回搜狐,查看更多

责任编辑:

java 城市分词_Java中文分词hanlp使用相关推荐

  1. Data Mining Machine Learning学习笔记 机器学习入门笔记 之jieba分词(中文分词)(二)

    第二章 Rationlism & Empiricism 理性主义和经验主义 Rationalism (按照人类的方式进行处理,做词法,语法,语义分析) Natural Language Pro ...

  2. 中文分词_中文分词及其应用

    一.中文分词原理 中文分词是指将一个汉字序列切分成一个一个单独的词.分词就是将连续的字序列按照一定的规范重新组合成词序列的过程.现有的分词方法可分为三大类,分别是基于字符串匹配的分词方法.基于理解的分 ...

  3. mysql 二元分词_MySQL 中文分词原理

    一,首先我们来了解一下其他几个知识点: 1. Mysql的索引意义? 索引是加快访问表内容的基本手段,尤其是在涉及多个表的关联查询里.当然,索引可以加快检索速度,但是它也同时降低了索引列的插入,删除和 ...

  4. 什么是中文分词及中文分词的应用

    什么是中文分词?     何为分词?中文分词与其他的分词又有什么不同呢?分词就是将连续的字序列按照一定的规范重新组合成词序列的过程.我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只 ...

  5. 什么是中文分词以及中文分词的应用简介

    什么是中文分词?     何为分词?中文分词与其他的分词又有什么不同呢?分词就是将连续的字序列按照一定的规范重新组合成词序列的过程.我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只 ...

  6. mysql 中文分词_MySQL 中文分词原理

    一,首先我们来了解一下其他几个知识点: 1. Mysql的索引意义? 索引是加快访问表内容的基本手段,尤其是在涉及多个表的关联查询里.当然,索引可以加快检索速度,但是它也同时降低了索引列的插入,删除和 ...

  7. java正向最大匹配算法_java中文分词之正向最大匹配法实例代码

    前言 基于词典的正向最大匹配算法(最长词优先匹配),算法会根据词典文件自动调整最大长度,分词的好坏完全取决于词典. 所谓词典正向最大匹配就是将一段字符串进行分隔,其中分隔 的长度有限制,然后将分隔的子 ...

  8. java nlpir_中科院NLPIR中文分词java版

    摘要:为解决中文搜索的问题,最开始使用 版 SCWS ,但是处理人名和地名时,会出现截断人名地名出现错误.开始使用 NLPIR 分词,在分词准确性上效果要比 SCWS 好.本文介绍如何在 系统下 JA ...

  9. 【NLP】jieba分词-Python中文分词领域的佼佼者

    1. jieba的江湖地位 NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视的力量便是jieba分词,号称要做最好的 Python 中文分词组件. "最好的& ...

最新文章

  1. PS2019历史记录画笔工具、历史记录艺术画笔工具
  2. 排错-Loadrunner录制打不开浏览器解决方法
  3. linux 7 vsftpd 配置,centos7下vsftpd配置
  4. 基于webRTC技术 音频和视频,IM解
  5. java visitor_java11教程--接口FileVisitor用法
  6. FD.io VPP:探究分段场景下vlib_buf在收发包的处理(dpdk_plugin.so)、rte_mbuf与vlib_buf 关系
  7. 2018北语c语言程序2答案,北语21春《JAVA语言程序设计》作业2题目【标准答案】...
  8. Oracle脚本(二)
  9. JavaScript 框架库 - jQuery
  10. 小程序ios android差异,解决小程序textarea在安卓和ios上padding不一的问题
  11. WinAPI 数据类型
  12. 爬取链家二手挂单房屋 - 匹配百度地图API坐标 - python出地图【0】爬取链家二手挂单房屋
  13. xctf攻防世界 REVERSE 高手进阶区 re2-cpp-is-awesome
  14. 路由交换接口类型详解——通俗易懂版
  15. 百度想成为伟大的金融科技公司?太迟了
  16. Windows Ubuntu 子系统修改默认登陆用户·
  17. 分页查询:前端分页和后端分页
  18. 在微信小程序中 使用uView rules 表单校验 validator 不起作用(无效)
  19. 广州市2009年社保与公积金缴费费率
  20. 毕业季基于spring的基于安卓APP的基于ssm框架的基于微信小程序的管理系统设计与开发(开题+源码+讲解+论文)

热门文章

  1. html中使用js在table中画斜线
  2. 【IDEA学生认证】学生党白漂IDEA宝典
  3. springboot执行批量插入_Springboot 批量插入优化
  4. 机器学习之非监督学习——(猫狗识别案例/搭建卷积神经网络)
  5. 文件归类整理,教你一个文件夹分配一个文件
  6. 在GeekPwn2017国际安全极客大赛上过“节”是一种什么体验?
  7. html5边框边距,html样式(边框)
  8. 全球与中国正射投影仪市场深度研究分析报告
  9. 村姑小妹的第一次網聊
  10. python中使用schedule模块定时执行任务