使用python语言安装stanfornlp 和hanlp安装包

简介:

安装stanfornlp

准备条件 win10 + jdk8(java安装包) + anaconda3
• 1)安装stanford nlp自然语言处理包: pip install stanfordcorenlp
• 2)下载Stanford CoreNLP文件
https://stanfordnlp.github.io/CoreNLP/download.html
下载的文件件为:stanford-corenlp-full-2016-10-31的压缩包
把解压后的stanford-corenlp-full-2016-10-31重命名为Stanford CoreNLP
• 3)下载中文模型jar包,
• 4)将上一步下载的stanford-chinese-corenlp2018-02-27-models.jar放在Stanford CoreNLP文件夹内
• 5)在Python中引用模型:
• from stanfordcorenlp import StanfordCoreNLP
• nlp = StanfordCoreNLP(r‘path', lang='zh')
说明:
--path 为Stanford CoreNLP文件夹目录

由于本机的内存过小,加载stanfordnlp所需要的内存需要8G,而本机内存只有4G,根本无法读取,所以只是把代码复制在编译器里,并没有执行。

安装hanlp
• 1、安装Java和Visual C++:我装的是Java 1.8和Visual C++ 2015。
• 2、安裝Jpype,conda install -c conda-forge jpype1
• 3、测试是否按照成功:
from jpype import *
startJVM(getDefaultJVMPath(), "-ea")
java.lang.System.out.println("Hello World")
shutdownJVM()

安装所需附件:

path:E:\所需软件\安装stanfordnlp所需组件

配置
• 1)下载hanlp.jar包: https://github.com/hankcs/HanLP
• 2、下载data.zip:https://github.com/hankcs/HanLP/releases中
http://hanlp.linrunsoft.com/release/data-for-1.7.0.zip后解压数据
包。
• 3、配置文件
• 示例配置文件:hanlp.properties

• 配置文件的作用是告诉HanLP数据包的位置,只需修改第一行:
root=usr/home/HanLP/
• 比如data目录是D:/hnlp/hanlp_code/hanlp,那么
root=D:/hnlp/hanlp_code/hanlp
image

startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hnlp\hanlp_code\hanlp\hanlp-1.5.0.jar;D:\hnlp\hanlp_code\hanlp"
"-Xms1g",
"-Xmx1g")

  1. 启动JVM,Linux需替换分号;为冒号:分号前后有两个目录,一个是hanlp的Jar包路径,一个是它的上级目录路径

2.-Xms1g代表给文件分配的内存为1g

  1. 路径设置为hanlp安装的路径,不能带有中文字符

代码示例:

-- coding:utf-8 --

from jpype import *

startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hnlp\hanlp_code\hanlp\hanlp-1.5.0.jar;D:\hnlp\hanlp_code\hanlp",
"-Xms1g",
"-Xmx1g") # 启动JVM,Linux需替换分号;为冒号:

print("=" 30 + "HanLP分词" + "=" 30)
HanLP = JClass('com.hankcs.hanlp.HanLP')

中文分词

print(HanLP.segment('你好,欢迎在Python中调用HanLP的API'))
print("-" * 70)

print("=" 30 + "标准分词" + "=" 30)
StandardTokenizer = JClass('com.hankcs.hanlp.tokenizer.StandardTokenizer')
print(StandardTokenizer.segment('你好,欢迎在Python中调用HanLP的API'))
print("-" * 70)

NLP分词NLPTokenizer会执行全部命名实体识别和词性标注

print("=" 30 + "NLP分词" + "=" 30)
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment('中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程'))
print("-" * 70)

print("=" 30 + "索引分词" + "=" 30)
IndexTokenizer = JClass('com.hankcs.hanlp.tokenizer.IndexTokenizer')
termList = IndexTokenizer.segment("主副食品");
for term in termList:
print(str(term) + " [" + str(term.offset) + ":" + str(term.offset + len(term.word)) + "]")
print("-" * 70)

print("=" 30 + " CRF分词" + "=" 30)
print("-" * 70)

print("=" 30 + " 极速词典分词" + "=" 30)
SpeedTokenizer = JClass('com.hankcs.hanlp.tokenizer.SpeedTokenizer')
print(NLPTokenizer.segment('江西鄱阳湖干枯,中国最大淡水湖变成大草原'))
print("-" * 70)

print("=" 30 + " 自定义分词" + "=" 30)
CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')
CustomDictionary.add('攻城狮')
CustomDictionary.add('单身狗')
HanLP = JClass('com.hankcs.hanlp.HanLP')
print(HanLP.segment('攻城狮逆袭单身狗,迎娶白富美,走上人生巅峰'))
print("-" * 70)

print("=" 20 + "命名实体识别与词性标注" + "=" 30)
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment('中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程'))
print("-" * 70)

document = "水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \
"根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \
"有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \
"严格地进行水资源论证和取水许可的批准。"
print("=" 30 + "关键词提取" + "=" 30)
print(HanLP.extractKeyword(document, 8))
print("-" * 70)

print("=" 30 + "自动摘要" + "=" 30)
print(HanLP.extractSummary(document, 3))
print("-" * 70)

text = r"算法工程师\n 算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法工程师就是利用算法处理事物的人。\n \n 1职位简介\n 算法工程师是一个非常高端的职位;\n 专业要求:计算机、电子、通信、数学等相关专业;\n 学历要求:本科及其以上的学历,大多数是硕士学历及其以上;\n 语言要求:英语要求是熟练,基本上能阅读国外专业书刊;\n 必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。\n\n2研究方向\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"
print("=" 30 + "短语提取" + "=" 30)
print(HanLP.extractPhrase(text, 10))
print("-" * 70)

shutdownJVM()

文章来源于小鱼儿的博客

相关文章
|
Linux 计算机视觉 C++
【解决方案】Building wheel for opencv-python:安装卡顿的原因与解决方案
当你安装OpenCV时,命令行停在Building wheel for opencv-python (PEP 517) ... -似乎卡住了。这并非程序假死,而是其编译耗时巨大。本文将揭示原因,并提供优化安装体验的实用方法。
1399 88
|
9月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
500 2
|
9月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1610 1
|
10月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1660 102
|
10月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
399 103
|
10月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
428 82
|
10月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1560 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
9月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
381 4
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
915 2

推荐镜像

更多