中文分词库盘点 Python windows

中文分词库 Python windows

       目前项目中用到了一些自然语言处理的一些知识,虽然之前多少有了解,但是没有详细总结过,这次就总结一下常用的这些中文分词库,网上搜了搜相应的资料要不半残要不收费,没办法我去把所有的文档都看了一遍,有相似经历的同学一定知道看完得多疲惫,中国有非常多优秀的NLP研究者,但是愿意可能花费大量的心血总结一篇基础向的文档的还是比较少,自己做课题的时候知道如果在入门阶段找到一篇总结性质的高质量内容得多高兴。每次刷新看见点赞和收藏的小红点的时候,动力都多增添了几分。


0.前置:新建一个环境(有基础可跳过)


       为了在一个环境下运行所有的分词库,所以新建了一个anaconda的环境,python版本参考了官方的安全版本中最新的3.10,避免各种库不适应各种的版本。

这里把网页链接给上,时间长了之后可以进来看一下最新的版本

python下载官网:https://www.python.org/downloads/
在这里插入图片描述

新建一个环境的命令

conda create --name NLP python=3.10

1.jieba


1.1 jieba简介

       jieba分词是国内目前最知名的分词库,其有三种常用的分词模式精确模型,全模式,和搜索引擎模式,支持繁体
其实还有一种paddle模型,但是其需要安装的库paddlepaddle-tiny库已经不支持更新,目前只支持到3.7版本。
在这里插入图片描述
在这里插入图片描述

1.1 jieba安装

官方GitHub文档网址:https://github.com/fxsjy/jieba
在这里插入图片描述

安装命令:

jieba库安装

pip install jieba

1.3 jieba分词代码

分词代码:

import jieba
text = "我爱学习自然语言处理"

seg_list = jieba.cut(text, cut_all=False)
print(list(seg_list))  # 精确模式

seg_list = jieba.cut(text)  # 默认是精确模式
print(list(seg_list))

seg_list = jieba.cut(text, cut_all=True)
print(list(seg_list))  # 全模式

seg_list = jieba.cut_for_search(text)  # 搜索引擎模式
print(list(seg_list))

运行结果:

Building prefix dict from the default dictionary ...
Loading model from cache D:\Temp\jieba.cache
Loading model cost 0.545 seconds.
Prefix dict has been built successfully.
['我', '爱', '学习', '自然语言', '处理']
['我', '爱', '学习', '自然语言', '处理']
['我', '爱', '学习', '自然', '自然语言', '语言', '处理']
['我', '爱', '学习', '自然', '语言', '自然语言', '处理']

2.Hanlp


2.1Hanlp简介

       HanLP旨在提供面向生产环境的一站式语言处理解决方案。它支持包括中文在内的多种语言,并且拥有广泛的功能,如分词、词性标注、命名实体识别、依存句法分析、语义依存分析、关键词提取、自动摘要、文本分类和情感分析等。

官网:https://hanlp.hankcs.com/
在这里插入图片描述

2.2Hanlp安装

       在Hanlp的安装文档中介绍了Hanlp一直以来的版本,可以说是非常详细,我给大家把里面给的流程图截个图出来,然后我直接调一个最基础的然后实践一下,降低入门难度。

安装文档网址:https://hanlp.hankcs.com/install.html
在这里插入图片描述

       他里面给了各种版本安装详细介绍,和优缺点对比,甚至还抨击了网上下载本地版的安装教程库🤧,那我就分享一个最最最基础的,充分尊重作者,如果大家想具体了解Hanlp,请认真阅读文档。
在这里插入图片描述
       Resful版需要联网应该然后初学者也有点学习成本,我们直接安装一个本地完整版,避免出现各种奇奇怪怪的版本依赖问题

pip install hanlp[full]

运行之后表示成功安装了这些库

Successfully installed MarkupSafe-2.1.5 absl-py-2.1.0 astunparse-1.6.3 charset-normalizer-3.3.2 colorama-0.4.6 fasttext-wheel-0.9.2 filelock-3.13.3 flatbuffers-24.3.7 fsspec-2024.3
.1 gast-0.5.4 google-pasta-0.2.0 grpcio-1.62.1 h5py-3.10.0 hanlp-2.1.0b57 hanlp-common-0.0.20 hanlp-downloader-0.0.25 hanlp-trie-0.0.5 huggingface-hub-0.22.0 jinja2-3.1.3 keras-3.1
.1 libclang-18.1.1 markdown-3.6 markdown-it-py-3.0.0 mdurl-0.1.2 ml-dtypes-0.3.2 mpmath-1.3.0 namex-0.0.7 networkx-3.2.1 optree-0.11.0 packaging-24.0 penman-1.2.1 perin-parser-0.0.
12 phrasetree-0.0.9 protobuf-4.25.3 pybind11-2.11.1 pygments-2.17.2 pynvml-11.5.0 pyyaml-6.0.1 regex-2023.12.25 requests-2.31.0 rich-13.7.1 safetensors-0.4.2 scipy-1.12.0 sentencep
iece-0.2.0 six-1.16.0 sympy-1.12 tensorboard-2.16.2 tensorboard-data-server-0.7.2 tensorflow-2.16.1 tensorflow-intel-2.16.1 tensorflow-io-gcs-filesystem-0.31.0 termcolor-2.4.0 toke
nizers-0.15.2 toposort-1.5 torch-2.2.1 tqdm-4.66.2 transformers-4.39.1 urllib3-2.2.1 werkzeug-3.0.1 wrapt-1.16.0

2.3 Hanlp分词代码


import hanlp

# 加载分词模型  hanlp.pretrained.tok.COARSE_ELECTRA_SMALL_ZH
tokenizer = hanlp.load(hanlp.pretrained.tok.COARSE_ELECTRA_SMALL_ZH)

text = "我爱学习自然语言处理"

运行结果

['我', '爱', '学习', '自然', '语言', '处理']

第一次运行需要联网会下载模型我的是下载到了这个文件夹下

C:\Users\系统用户名\AppData\Roaming\hanlp\tok
在这里插入图片描述

分词模型选择见文档该部分

分词部分:https://hanlp.hankcs.com/docs/api/hanlp/pretrained/tok.html

在这里插入图片描述


也可以直接预先手动下载

每个模型版本下面有一个网页链接,将网页链接输入到浏览器上按回车访问,会下载该包含模型的pt文件的安装包。

在这里插入图片描述

之后解压到项目文件夹下,就是你分词的代码的文件夹下

解压之后里面的东西可以看一眼
在这里插入图片描述

然后将load中填入文件夹路径运行结果是一样的。

import hanlp

# 加载分词模型
# tokenizer = hanlp.load(hanlp.pretrained.tok.COARSE_ELECTRA_SMALL_ZH)
tokenizer = hanlp.load("coarse_electra_small_20220616_012050")

text = "我爱学习自然语言处理"
seg_list = tokenizer(text)

print(seg_list)

3.SnowNLP


3.1SnowNLP简介

       这个是一个比较老的的库,GitHub,最后一次更新是7年前(此时2024年),但是还是有6.3k个Star,基本的分词,词性判断,情感倾向判断,获取拼音,繁体分词,都能实现,文档里全是干货,文档里还说支持自己训练,这个有待研究,先关注一下简单基础的分词功能吧。

官方文档: https://github.com/isnowfy/snownlp
在这里插入图片描述

3.2 SnowNLP安装

pip install snownlp

3.3 SnowNLP分词代码

from snownlp import SnowNLP

# 待分词的文本
text = "我爱学习自然语言处理"

# 创建SnowNLP对象
s = SnowNLP(text)

# 进行分词
words = s.words

# 打印分词结果
print(list(words))

分词结果:

['我', '爱', '学习', '自然', '语言', '处理']

4.thulac (清华)


4.1thulac简介

清华做的一个库也是上古时期的了,该库自我简介的自己的优点为:

  1. 能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
  2. 准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。
  3. 速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。

官方网址:https://github.com/thunlp/THULAC-Python
在这里插入图片描述

4.2thulac安装

pip install thulac

4.3thulac分词代码

import thulac

# 初始化THULAC,使用默认模型
thu = thulac.thulac(seg_only=True)  # 只进行分词,不进行词性标注

# 待分词的文本
text = "我爱学习自然语言处理"

# 执行分词
tokens = thu.cut(text, text=True)

print(tokens)

运行结果:

Model loaded succeed
我 爱 学习 自然 语言 处理

5.LTP (哈工大)


5.1LTP简介

       哈工大的分词库,目前还在更新,使用的是Pytorch的模型,除了安装ltp库之外,还需要安装transform库和ptorch,也就是说该分词库应该是支持GPU推理的。

官方文档: https://github.com/HIT-SCIR/ltp
在这里插入图片描述

5.2LTP安装

下面是官方的安装文档部分的内容,直接复制过来了,这里的pytorch应该默认都是cpu的,如果想用GPU推理的话这里需要安装GPU版本,如果是新手就方法一直接安装就完事了,剩下的啥也不用想。

# 方法 1: 使用清华源安装 LTP
# 1. 安装 PyTorch 和 Transformers 依赖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch transformers
# 2. 安装 LTP
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ltp ltp-core ltp-extension

# 方法 2: 先全局换源,再安装 LTP
# 1. 全局换 TUNA 源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 2. 安装 PyTorch 和 Transformers 依赖
pip install torch transformers
# 3. 安装 LTP
pip install ltp ltp-core ltp-extension

然后是模型下载,下载需要到HuggingFace上下载

https://huggingface.co/LTP
在这里插入图片描述

选这个small然后把文件下载挨个点一遍,然后放到一个文件夹里起名small然后放到项目文件夹下
在这里插入图片描述
在这里插入图片描述

5.3LTP分词代码

from ltp import LTP

ltp = LTP("small")

output = ltp.pipeline(["他叫汤姆去拿外衣。"], tasks=["cws"])
# 使用字典格式作为返回结果
print(output.cws)

分词结果:

Loading weights from local directory
[['他', '叫', '汤姆', '去', '拿', '外衣', '。']]

6.其它(各种原因没使用成功)


6.1FoolNLTK -Linux

官方文档:https://github.com/rockyzhengwu/FoolNLTK?tab=readme-ov-file
在这里插入图片描述
失败原因:

只支持Linux系统,Windows能安装不能用,有待测试
在这里插入图片描述

6.2 pkuseg-python(北大)-安装不上

官方文档:https://github.com/lancopku/pkuseg-python
在这里插入图片描述

失败原因安装不上:然后搜了一下安装不上的还挺多,目前不知道什么情况,已经提问了,不知道能不能得到回复。

在这里插入图片描述

6.3 CoreNLP (斯坦福)-JAVA语言

官方文档:https://github.com/stanfordnlp/CoreNLP
在这里插入图片描述
在这里插入图片描述

失败原因:这是一个Java库不是Python的

6.4FastText JAVA-macOS

文档地址:https://github.com/facebookresearch/fastText

在这里插入图片描述

失败原因:系统和语言都不满足条件

相关推荐

  1. python3: jieba(“结巴”中文词库) .2023-11-28

    2024-03-27 15:34:05       61 阅读
  2. 日本语自然语言处理中的词库 - GiNZA

    2024-03-27 15:34:05       32 阅读
  3. Midjourney词库

    2024-03-27 15:34:05       40 阅读
  4. Python单篇文章提取核心词汇

    2024-03-27 15:34:05       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 15:34:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 15:34:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 15:34:05       82 阅读
  4. Python语言-面向对象

    2024-03-27 15:34:05       91 阅读

热门阅读

  1. MySQL【六】什么是视图

    2024-03-27 15:34:05       42 阅读
  2. Android 二维码相关(三)

    2024-03-27 15:34:05       44 阅读
  3. Android关于H5页面获取App原生本地资源的实现

    2024-03-27 15:34:05       38 阅读
  4. 修改android11的默认桌面

    2024-03-27 15:34:05       40 阅读
  5. vit -- 常用配置

    2024-03-27 15:34:05       41 阅读