当前位置: 首页 > 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;得大道者&…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...