NLP初步——HanNLP

2022年5月21日20:13:26 发表评论 2,756 views

pip install JPype1-0.7.0-cp37-cp37m-win_amd64
pip install pyhanlp
然后命令行import pyhanlp时,会有一个下载的过程
部分可能要手动下载

 

#-*- coding:utf-8 -*-
import pyhanlp
import jpype
jvm_path = jpype.getDefaultJVMPath()
hanlp_classpath = r"D:\Users\xabcd\Anaconda3\Lib\site-packages\pyhanlp\static\hanlp-1.8.3.jar"
jvm_arg = '-Djava.class.path='+hanlp_classpath
#判断jvm进程是否开启
# if not jpype.startJVM(jvm_path,jvm_arg):   # 如果没开启进程  (可能路径输错了,报进程已开启的错误)
#     jpype.startJVM(jvm_path,jvm_arg)  # 则进行开启
HanLP = jpype.JClass('com.hankcs.hanlp.HanLP')

text = "嘿嘿嘿,这是第一个关于HanLP的测试!"
print('1-standard segment',HanLP.segment(text))
# [嘿嘿嘿/o, ,/w, 这/rzv, 是/vshi, 第/mq, 一个/mq, 关于/p, HanLP/nx, 的/ude1, 测试/vn, !/w]
HanLPTokensizer = jpype.JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print('2-NLP segment',HanLPTokensizer.segment(text))
# 2-NLP segment [嘿嘿嘿/o, ,/w, 这/r, 是/v, 第一个/m, 关于/p, HanLP/nx, 的/u, 测试/vn, !/w]

# 自定义词典
CustomDictionary = jpype.JClass('com.hankcs.hanlp.dictionary.CustomDictionary')
text2="灵山学院攻城狮逆袭单身狗,走向认证巅峰"  #错别字看看
print('3-NLP segment',HanLPTokensizer.segment(text2))
# 2-NLP segment [灵山学院攻城狮/nt, 逆袭/v, 单身/n, 狗/n, ,/w, 走向/v, 认证/v, 巅峰/n]
CustomDictionary.add('攻城狮')
CustomDictionary.add('灵山')
CustomDictionary.add('学院')
print('4-NLP segment',HanLPTokensizer.segment(text2))
paragraphs = "SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。"
print('abatract key words',HanLP.extractKeyword(paragraphs,5))
print('summary',HanLP.extractSummary(paragraphs,2))  # 结果和snownlp一样





其它:

java\c++ 可以调用hanlp (1)pyhanlp (2)安装按照:

 

step1:下载 jpyre1。whl,然后在Terminal或者 直接在cmd里面 pip install JPype1-0.7.0-cp37-cp37m-win_amd64.whl

 

step2:pip install pyhanlp

 

step3:在python consol里面,第一次调用: import pyhanlp,自动下载jar包、data文件(1个G)等。

(3)Hanlp的功能演示 http://hanlp.com/ https://github.com/hankcs/HanLP

 

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: