本文将介绍
pyhanlp
。包括
HanLP 1.x
和HanLP 2.x
版本的使用场景的介绍,以及它们的安装、迁移和使用方法,以帮助大家充分利用其强大的自然语言处理功能。主要内容包括:
1、如何在3.9及以上的python环境下安装pyhanlp?
2、pyhanlp的迁移;
3、HanLP2.x的安装使用。
HanLP 是一个开源的自然语言处理(NLP)工具包,提供了丰富的功能,包括分词、词性标注、依存句法分析、关键词提取、文本分类等。这些功能满足了多种语言处理需求,被广泛应用于研究和工业领域。
两个版本的衍生:
-
HanLP 1.x
HanLP 1.x 是基于 Java 的版本,主要依赖统计模型和规则算法。它提供了高效的分词和词性标注工具,同时支持命名实体识别(NER)、依存句法分析和关键词提取等基础 NLP 功能。为了方便 Python 用户使用 HanLP 1.x,提供了一个名为pyhanlp
的 Python 包,通过 JPype 将 HanLP 1.x 的 Java 接口封装成 Python API。pyhanlp
支持自动下载和升级模型,但其核心仍依赖 Java,适用于 Python ≤ 3.8 的环境。 -
HanLP 2.x
HanLP 2.x 是一个全新的版本,完全基于 Python 开发,并采用了现代深度学习技术,如 Transformer 和预训练语言模型(如 BERT 和 GPT)。HanLP 2.x 支持多语言处理,不再局限于中文,并在复杂任务(如文本生成、问答系统和语义分析)上表现优异。其 API 设计更加现代化,易于上手,适合高精度和大规模的 NLP 应用场景。
HanLP 1.x 和 HanLP 2.x 的对比:
总结:
-
如果您的任务对速度和资源需求较敏感,或者只是完成基础的 NLP 任务,HanLP 1.x 仍然是一个高效的选择。
-
如果您不打算将使用
HanLP 1.x
接口实现的功能迁移到HanLP 2.x
,但希望在新版本的 Python 中安装和迁移pyhanlp
,请仔细阅读本文并动手测试相关步骤。 -
如果需要处理复杂任务或多语言环境,并且注重精度和性能,HanLP 2.x 是更好的选择。
一、python3.11环境下安装pyhanlp
1.1 python3.11虚拟环境准备
创建一个python为3.11.8的虚拟环境hanlp1_X。
1.2 修改setup.py文件内容
使用官网的conda命令:
conda install -c conda-forge openjdk python=3.8 jpype1=0.7.0 -y pip install pyhanlp
显然是不可行的,python的版本,jpype1的版本都不对。直接使用命令:
pip install pyhanlp |
安装报错信息如下:
打开下载的pyhanlp 0.1.85的包中的安装文件setup.py。
setup.py的内容如下,影响安装的信息如高亮(红色)部分。
# -*- coding:utf-8 -*-
# Author:hankcs
# Date: 2018-03-11 20:54
from os.path import abspath, join, dirname
import sys
from setuptools import find_packages, setup
def browser_open(url='https://nlp.hankcs.com/download.php?file=install'):
try:
import webbrowser
webbrowser.open_new_tab(url)
except:
pass
JPYPE = 'jpype1==0.7.0'
try:
import subprocess
command = 'pip install ' + JPYPE
subprocess.run(