【python 走进NLP】pyhanlp 自然语言处理包

安装:

pip install pyhanlp

若安装失败:
从这里下载JPype allows full access to Java class libraries.
https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype

开源地址:

https://github.com/hankcs/pyhanlp

HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。

HanLP提供下列功能:

中文分词
HMM-Bigram(速度与精度最佳平衡;一百兆内存)
最短路分词、N-最短路分词
由字构词(侧重精度,全世界最大语料库,可识别新词;适合NLP任务)
感知机分词、CRF分词
词典分词(侧重速度,每秒数千万字符;省内存)
极速词典分词
所有分词器都支持:
索引全切分模式
用户自定义词典
兼容繁体中文
训练用户自己的领域模型
词性标注
HMM词性标注(速度快)
感知机词性标注、CRF词性标注(精度高)
命名实体识别
基于HMM角色标注的命名实体识别 (速度快)
中国人名识别、音译人名识别、日本人名识别、地名识别、实体机构名识别
基于线性模型的命名实体识别(精度高)
感知机命名实体识别、CRF命名实体识别
关键词提取
TextRank关键词提取
自动摘要
TextRank自动摘要
短语提取
基于互信息和左右信息熵的短语提取
拼音转换
多音字、声母、韵母、声调
简繁转换
简繁分歧词(简体、繁体、臺灣正體、香港繁體)
文本推荐
语义推荐、拼音推荐、字词推荐
依存句法分析
基于神经网络的高性能依存句法分析器
MaxEnt依存句法分析
文本分类
情感分析
word2vec
词向量训练、加载、词语相似度计算、语义运算、查询、KMeans聚类
文档语义相似度计算
语料库工具
部分默认模型训练自小型语料库,鼓励用户自行训练。所有模块提供训练接口,语料可参考OpenCorpus。
在提供丰富功能的同时,HanLP内部模块坚持低耦合、模型坚持惰性加载、服务坚持静态提供、词典坚持明文发布,使用非常方便。默认模型训练自全世界最大规模的中文语料库,同时自带一些语料处理工具,帮助用户训练自己的模型。

python 使用

# encoding: utf-8

from pyhanlp import *

# 中文分词
print(HanLP.segment('皇家盐湖城梅西煤球王c罗费城联合'))



# 词性标注
for term in HanLP.segment('徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。'):
    print('{}\t{}'.format(term.word, term.nature)) # 获取单词与词性

# 关键词提取
document = "水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \
           "根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \
           "有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \
           "严格地进行水资源论证和取水许可的批准。"
print(HanLP.extractKeyword(document, 5))
# 自动摘要
print(HanLP.extractSummary(document, 3))
# 依存句法分析
print(HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。"))

运行结果:

[皇家, 盐湖城, 梅西, 煤球王, c, 罗, 费城, 联合]
徐先生	nr
还	d
具体	a
帮助	v
他	rr
确定	v
了	ule
把	pba
画	v
雄鹰	n
、	w
松鼠	n
和	cc
麻雀	n
作为	p
主攻	vn
目标	n
。	w
[水资源, 陈明忠, 进行, 红线, 部分]
[严格地进行水资源论证和取水许可的批准, 有部分省超过红线的指标, 水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露]
1	徐先生	徐先生	nh	nr	_	4	主谓关系	_	_
2	还	还	d	d	_	4	状中结构	_	_
3	具体	具体	a	ad	_	4	状中结构	_	_
4	帮助	帮助	v	v	_	0	核心关系	_	_
5	他	他	r	r	_	4	兼语	_	_
6	确定	确定	v	v	_	4	动宾关系	_	_
7	了	了	u	u	_	6	右附加关系	_	_
8	把	把	p	p	_	15	状中结构	_	_
9	画	画	v	v	_	8	介宾关系	_	_
10	雄鹰	雄鹰	n	n	_	9	动宾关系	_	_
11	、	、	wp	w	_	12	标点符号	_	_
12	松鼠	松鼠	n	n	_	10	并列关系	_	_
13	和	和	c	c	_	14	左附加关系	_	_
14	麻雀	麻雀	n	n	_	10	并列关系	_	_
15	作为	作为	v	v	_	6	动宾关系	_	_
16	主攻	主攻	v	vn	_	17	定中关系	_	_
17	目标	目标	n	n	_	15	动宾关系	_	_
18	。	。	wp	w	_	4	标点符号	_	_


Process finished with exit code 0

java 使用 :
Maven 构建项目
pom.xml 加载依赖:

 <dependency>
            <groupId>com.hankcs</groupId>
            <artifactId>hanlp</artifactId>
            <version>portable-1.6.1</version>
        </dependency>
import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;

import java.util.List;

public class HanNLP {
    public static void main(String[] args) {

        /*词性标注*/
        List<Term> termList = StandardTokenizer.segment("皇家盐湖城梅西煤球王c罗");
        System.out.println(termList);

        /*关键词提取*/
        String content = "皇家盐湖城梅西煤球王c罗";
        List<String> keywordList = HanLP.extractKeyword(content, 6);
        System.out.println(keywordList);
    }
}

运行结果:

[皇家/n, 盐湖城/ns, 梅西/nrf, 煤球/n, 王/nr, c/nx, 罗/j]
[皇家, 煤球, 梅西, 盐湖城]

Process finished with exit code 0

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页