当前位置: 首页 > news >正文

NLP常用的三种中文分词工具对比

本文将对三种中文分词工具进行使用尝试,这三种工具分别为:哈工大的LTP结巴分词以及北大的pkuseg

1、准备

首先我们先准备好环境,即需要安装三个模块:

  • pyltp
  • jieba
  • pkuseg
  • LTP的分词模型文件cws.model

在用户字典中添加以下5个词语:

经
少安
贺凤英
F-35战斗机
埃达尔·阿勒坎

2、测试代码

# -*- coding: utf-8 -*-
import os
import jieba
import pkuseg
from pyltp import Segmentor
lexicon = ['经', '少安', '贺凤英', 'F-35战斗机', '埃达尔·阿勒坎'] # 自定义词典# 哈工大LTP分词
def ltp_segment(sent):# 加载文件cws_model_path = os.path.join('data/cws.model') # 分词模型路径,模型名称为`cws.model`lexicon_path = os.path.join('data/lexicon.txt') # 参数lexicon是自定义词典的文件路径segmentor = Segmentor()segmentor.load_with_lexicon(cws_model_path, lexicon_path)words = list(segmentor.segment(sent))segmentor.release()return words# 结巴分词
def jieba_cut(sent):for word in lexicon:jieba.add_word(word)return list(jieba.cut(sent))# pkuseg分词
def pkuseg_cut(sent):seg = pkuseg.pkuseg(user_dict=lexicon)words = seg.cut(sent)return wordssent = '尽管玉亭成家以后,他老婆贺凤英那些年把少安妈欺负上一回又一回,怕老婆的玉亭连一声也不敢吭,但少安他妈不计较他。'
#sent = '据此前报道,以色列于去年5月成为世界上第一个在实战中使用F-35战斗机的国家。'
#sent = '小船4月8日经长江前往小鸟岛。'
#sent = '1958年,埃达尔·阿勒坎出生在土耳其首都安卡拉,但他的求学生涯多在美国度过。'print('ltp:', ltp_segment(sent))
print('jieba:', jieba_cut(sent))
print('pkuseg:', pkuseg_cut(sent))

3、测试输出

3.1对于第1句话,输出结果如下:

原文: 尽管玉亭成家以后,他老婆贺凤英那些年把少安妈欺负上一回又一回,怕老婆的玉亭连一声也不敢吭,但少安他妈不计较他。

ltp: [‘尽管’, ‘玉亭’, ‘成家’, ‘以后’, ‘,’, ‘他’, ‘老婆’, ‘贺凤英’, ‘那些’, ‘年’, ‘把’, ‘少安’, ‘妈’, ‘欺负’, ‘上’, ‘一’, ‘回’, ‘又’, ‘一’, ‘回’, ‘,’, ‘怕’, ‘老婆’, ‘的’, ‘玉亭’, ‘连’, ‘一’, ‘声’, ‘也’, ‘不’, ‘敢’, ‘吭’, ‘,’, ‘但’, ‘少安’, ‘他妈’, ‘不’, ‘计较’, ‘他’, ‘。’]

jieba: [‘尽管’, ‘玉亭’, ‘成家’, ‘以后’, ‘,’, ‘他’, ‘老婆’, ‘贺凤英’, ‘那些’, ‘年’, ‘把’, ‘少安’, ‘妈’, ‘欺负’, ‘上’, ‘一回’, ‘又’, ‘一回’, ‘,’, ‘怕老婆’, ‘的’, ‘玉亭’, ‘连’, ‘一声’, ‘也’, ‘不敢’, ‘吭’, ‘,’, ‘但少安’, ‘他妈’, ‘不’, ‘计较’, ‘他’, ‘。’]

pkuseg: [‘尽管’, ‘玉亭’, ‘成家’, ‘以后’, ‘,’, ‘他’, ‘老婆’, ‘贺凤英’, ‘那些’, ‘年’, ‘把’, ‘少安’, ‘妈’, ‘欺负’, ‘上’, ‘一’, ‘回’, ‘又’, ‘一’, ‘回’, ‘,’, ‘怕’, ‘老婆’, ‘的’, ‘玉亭’, ‘连’, ‘一’, ‘声’, ‘也’, ‘不’, ‘敢’, ‘吭’, ‘,’, ‘但’, ‘少安’, ‘他妈’, ‘不’, ‘计较’, ‘他’, ‘。’]

3.2对于第2句话,输出结果如下:

原文: 据此前报道,以色列于去年5月成为世界上第一个在实战中使用F-35战斗机的国家。

ltp: [‘据’, ‘此前’, ‘报道’, ‘,’, ‘以色列’, ‘于’, ‘去年’, ‘5月’, ‘成为’, ‘世界’, ‘上’, ‘第一’, ‘个’, ‘在’, ‘实战’, ‘中’, ‘使用’, ‘F-35’, ‘战斗机’, ‘的’, ‘国家’, ‘。’]

jieba: [‘据此’, ‘前’, ‘报道’, ‘,’, ‘以色列’, ‘于’, ‘去年’, ‘5’, ‘月’, ‘成为’, ‘世界’, ‘上’, ‘第一个’, ‘在’, ‘实战’, ‘中’, ‘使用’, ‘F’, ‘-’, ‘35’, ‘战斗机’, ‘的’, ‘国家’, ‘。’]

pkuseg: [‘据’, ‘此前’, ‘报道’, ‘,’, ‘以色列’, ‘于’, ‘去年’, ‘5月’, ‘成为’, ‘世界’, ‘上’, ‘第一’, ‘个’, ‘在’, ‘实战’, ‘中’, ‘使用’, ‘F-35战斗机’, ‘的’, ‘国家’, ‘。’]

3.3对于第3句话,输出结果如下:

原文: 小船4月8日经长江前往小鸟岛。

ltp: [‘小船’, ‘4月’, ‘8日’, ‘经长江’, ‘前往’, ‘小鸟岛’, ‘。’]

jieba: [‘小船’, ‘4’, ‘月’, ‘8’, ‘日经’, ‘长江’, ‘前往’, ‘小’, ‘鸟岛’, ‘。’]

pkuseg: [‘小船’, ‘4月’, ‘8日’, ‘经’, ‘长江’, ‘前往’, ‘小鸟’, ‘岛’, ‘。’]

3.4对于第4句话,输出结果如下:

原文: 1958年,埃达尔·阿勒坎出生在土耳其首都安卡拉,但他的求学生涯多在美国度过。

ltp: [‘1958年’, ‘,’, ‘埃达尔·阿勒坎’, ‘出生’, ‘在’, ‘土耳其’, ‘首都’, ‘安卡拉’, ‘,’, ‘但’, ‘他’, ‘的’, ‘求学’, ‘生涯’, ‘多’, ‘在’, ‘美国’, ‘度过’, ‘。’]

jieba: [‘1958’, ‘年’, ‘,’, ‘埃’, ‘达尔’, ‘·’, ‘阿勒’, ‘坎’, ‘出生’, ‘在’, ‘土耳其’, ‘首都’, ‘安卡拉’, ‘,’, ‘但’, ‘他’, ‘的’, ‘求学’, ‘生涯’, ‘多’, ‘在’, ‘美国’, ‘度过’, ‘。’]

pkuseg: [‘1958年’, ‘,’, ‘埃达尔·阿勒坎’, ‘出生’, ‘在’, ‘土耳其’, ‘首都’, ‘安卡拉’, ‘,’, ‘但’, ‘他’, ‘的’, ‘求学’, ‘生涯’, ‘多’, ‘在’, ‘美国’, ‘度过’, ‘。’]

4、测试总结

  • 用户词典方面:LTP和pkuseg的效果都很好,jieba的表现不尽如人意,这主要是因为自定义的字典的词语里面含有标点符号,关于该问题的解决办法,可以参考网址:https://blog.csdn.net/weixin_42471956/article/details/80795534

  • 从第二句话的效果来看,pkuseg的分词效果应该是最好的,‘经’应该作为单个的词语切分出来,而LTP和jieba即使加了自定义词典,也没有效果,同理,‘F-35战斗机’也是类似的情形。

  • 总的来说,三者的分词效果都很优秀,差距不是很大,但在自定义词典这块,无疑pkuseg的效果更加稳定些。

  • 有关pkuseg的介绍与使用,可以参考网址:https://github.com/lancopku/PKUSeg-python

相关文章:

NLP常用的三种中文分词工具对比

本文将对三种中文分词工具进行使用尝试,这三种工具分别为:哈工大的LTP,结巴分词以及北大的pkuseg。 1、准备 首先我们先准备好环境,即需要安装三个模块: pyltpjiebapkusegLTP的分词模型文件cws.model 在用户字典中…...

Visual C++ 6.0环境开发PACS影像系统的技术指标和精准算法

一、技术指标 •图像文件格式:DCM、JPG、BMP、TIF等 •可支持显示属性设置:24/32位真彩;256位色(黑白) •可支持监视器分辨率:1024﹡768;1280﹡1024;1600&…...

接口测试介绍以及用例编写

6.1 接口 6.1.1 接口概述 定义: 接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。…...

MATLAB迭代的三种方式以及相关案例举例

系列文章目录 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制 MATLAB求函数极限的简单介绍 文章目录 系列文章目录 前言 …...

测试替身Test Doubles的5类型(Mockito)

测试替身Test Doubles的5类型(Mockito) 我们有一个名为 BankAccount 的类。 数据库用于存储和检索银行帐户信息。 我们想测试 BankAccount 中的逻辑,而不必担心它使用的底层数据库.由此类实现——它将 SQL 查询发送到数据库并返回其中包含的值。 测试替身Test Dou…...

【C++】链表

链表是一种常见的数据结构,用于存储和组织数据。它的每个元素被称为结点(Node),结点是链表的基本单位,链表由一系列结点(Node)组成,每个结点包含两个部分:数据部分&#…...

day42_jsp

今日内容 零、 复习昨日 一、JSP 二、EL 三、JSTL 四、MVC 零、 复习昨日 一、JSP 1.0 引言 现有问题 在之前学习Servlet时,服务端通过Servlet响应客户端页面,有什么不足之处? 开发方式麻烦:继承父类、覆盖方法、配置Web.xml或注…...

JAVA面试八股整理——基础部分

JAVA 基础 JVM JDK JRE JVM java虚拟机,针对不同的系统,使用相同的字节码会给出相同结果。一次编译,随处可运行 JDK Java SDK 提供给开发者使用,创建和编译Java程序。包含了JRE,同时包含了其它工具(jav…...

【JavaSE】Java基础语法(二十八):HashSet集合

文章目录 1. HashSet集合概述和特点2. HashSet集合的基本应用3. 哈希值4. HashSet集合存储学生对象并遍历【应用】 1. HashSet集合概述和特点 底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历 2. HashSet集合的基本应用 存储字符串并遍历 …...

压缩感知重构之匹配追踪算法

算法的重构是压缩感知中重要的一步,是压缩感知的关键之处。因为重构算法关系着信号能否精确重建,国内外的研究学者致力于压缩感知的信号重建,并且取得了很大的进展,提出了很多的重构算法,每种算法都各有自己的优缺点&a…...

【SpinalHDL快速入门】4.6、复合类型之Vec

文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较(Comparison)1.3.2、类型转换(Type cast)1.3.3、杂项(Misc)1.3.4、Lib辅助函数(Lib helper functions) 1.1、描述 …...

探访世优科技数字人虚拟直播产品体系 | 世优开放日再次成功举行

2023年5月30日,世优科技全栈技术产品体验活动(第二期)顺利落下帷幕。此次活动共邀请到30余位各行各业的嘉宾到场,在两个多小时的开放日活动中,世优科技全面展示数字人及虚拟直播领域的技术产品体系。来访嘉宾们全程体验…...

有奖励!2023陕西省首台(套)重大技术装备产品项目申报条件、认定材料

本文整理了2023陕西省首台(套)重大技术装备产品项目申报条件,认定材料等相关内容,感兴趣的朋友快跟小编一起来看看吧! 一、重点支持方向及领域 重点支持方向及领域:高档工业母机、电力装备、大型矿山和冶金…...

2023/6/6总结

CSS 如果想要实现背景颜色渐变效果&#xff1a; left是从左边开始&#xff0c;如果想要对角线比如&#xff0c;左上角就是left top&#xff0c;渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页&#xff1a; html代码&#xff1a; <!…...

api习题

// 1 整数或者小数 // String a"378.000"; // String rex"[1-9]\\d*|[0-9]|*\\.[0-9]*"; // System.out.println(a.matches(rex)); // 2 只能输入数字&#xff1a; // String rex"\\b*"; // 3 只能输入n位的数字&#xff1a; // String r…...

(STL之string)string类的用法详解

string类成员函数PART1 成员函数(构造函数拷贝构造函数)&#xff1a;string 函数原型&#xff1a; string(); string (const string& str); string (const string& str, size_t pos, size_t len npos); string (const char* s); string (const char* s, size_t n)…...

基于RT-Thread快速上手SD NAND 虚拟文件系统

SD NAND 也称之为贴片式TF卡&#xff0c;贴片式SD卡&#xff0c;采用标准的SDIO接口&#xff0c;兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M&#xff0c;对比128M的SD卡&#xff0c;可以看到贴片SD卡尺寸更小&#xff0c;不要SD卡座&#xff0c;占…...

性能测试实战

目录 一、创建线程组与http(s)请求1、JMeter关键词2、创建线程组3、线程组参数举例说明案例1:模拟5个用户,同时访问百度案例2:模拟5个用户,同时访问百度,并且循环2次案例3:模拟5个线程,持续执行10秒的时间案例4:模拟10秒启动10个线程,循环执行20秒4、创建http请求a、操…...

【PWN · 总结】system返回shell(‘/bin/sh‘、‘sh‘、$(0))

pwn题中要通过system/excute等返回shell&#xff0c;进而cat flag。今天遇到一题&#xff0c;参数$(0)也可返回&#xff0c;有必要记录一下。 目录 前言 一、/bin/sh 1.strings 2.IDA 3.pwntools 4.ROPgadget 5.libc中寻找 二、sh 三、$(0) exp IDA查看机器码 …...

《庄子》笔记

庄子 前述&#xff1a;庄子&#xff0c;战国时宋国人。 1.鲲鹏&#xff1a;胸襟宽广&#xff0c;高远&#xff0c;无界限。 2.寒蝉和灵龟&#xff1a;小年的悲哀。 3.小麻雀的得意&#xff1a;境界不同&#xff0c;又有什么可比性呢。 4.列子随风而行&#xff1a;得大道者&…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...

CppCon 2015 学习:REFLECTION TECHNIQUES IN C++

关于 Reflection&#xff08;反射&#xff09; 这个概念&#xff0c;总结一下&#xff1a; Reflection&#xff08;反射&#xff09;是什么&#xff1f; 反射是对类型的自我检查能力&#xff08;Introspection&#xff09; 可以查看类的成员变量、成员函数等信息。反射允许枚…...