NLP之jieba分词

jieba-fast安装过程和问题解决(unable to find vcvarsall.bat) 问题来源: 在使用jieba分词的时候发现一个问题就是从开始到分词有一个慢的过程,下图所示: 对策思路: 其实有一个拿Cython重写了jieba这个包就是jieba-fast下载地址如下 https://pypi.org/project/jieba-fast/#files 出现问题1: 安装jieba_fast他是使用c重新写了一遍jieba分词,所以速度上更快一些,但是... 阅读详情

为什么要分词

图像处理:
我们在前面学KNN 的时候 ,知道图像是将 一幅图 转换成 灰度图 ,然后在转换成 0101
在这里插入图片描述

然后变成 一个 [ 1024] 的向量 。

文本:

我们一般先将一个文本先切成 单个 单词 ,然后在用特征工程 (后面我们会专门讲解这个)变成机器可以识别的向量 。 所以分词 是最先的一个步骤。

分词的难点

歧义消解问题

输入待切分句子:提高人民生活水平

可以切分输出 :提高/人民/生活/水平

或者切分输出:提/高人/民生/活水/平

可以看到,明显第二个输出为歧义切分。

未登录词识别

未登录词指的是在已有的词典中,或者训练语料里面没有出现过的词,分为实体名词,专有名词及新词。 比如每年网络会爆出一些网红词 : 给力 ,盘它 。这样的词以前是没有出现过的 。 我们也希望能够切分出来。

常见分词方法

基于字典、词库匹配的分词

机械分词算法,将待分的字符串与一个充分大的机器词典中的词条进行匹配。

分为正向匹配和逆向匹配;最大长度匹配和最小长度匹配;单纯分词和分词与标注过程相结合的一体化方法。所以常用的有:正向最大匹配,逆向最大匹配,最少切分法。

实际应用中,将机械分词作为初分手段,再利用其他方法提高准确率。

基于词频统计的分词

统计分词,是一种全切分方法。切分出待分语句中所有的词,基于训练语料词表中每个词出现的频率,运用统计模型和决策算法决定最优的切分结果。

基于知识理解的分词

主要基于句法、语法分析,并结合语义分析,通过对上下文内容所提供信息的分析对词进行定界。

这类方法试图让机器具有人类的理解能力,需要使用大量的语言知识和信息,目前还处在试验阶段

分词工具

1,jieba 分词
2, jieba_fast
3,HanLP

中文分词 jieba 和 hanlp 用的最多。jieba_fast 比jieba效率高 用C 重写了这个库。

使用

import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("全模式: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("精准模式: " + "/ ".join(seg_list))  # 精确模式


全模式: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
精准模式: 我/ 来到/ 北京/ 清华大学

jieba 原理

使用非常简单 ,但是我们一般会

前缀词典

前缀词典,实际上可以认为是一个词频词典 我们存在一个文本文件中,

里面都是 {词:频率} 这种形式 ;

比如 { 我们 : 1000,
我 : 1001,
实际: 500
}

有向无环图DAG

DAG是基于前面得到的前缀词典进行构造的,基本思想是将待分语句进行全切分,将切分完的词语列表与前缀词典进行比较,如果这个词存在,就存下来,并用词在字符串中的位置索引进行替代,转化为{key:list[i,j…], …}的字典结构,如下:

假设有句子,去北京大学玩,则对应的DAG为,{0 : [0], 1 : [1, 2, 4], 2 : [2], 3 : [3, 4], 4 : [4], 5 : [5]} 这样一个字典。

具体意思是,0:[0]代表0位置,即‘去’在前缀词典中代表一个词,同理1 : [1, 2, 4]代表‘北’,‘北京’,‘北京大学’

在这里插入图片描述

基于词频的最大切分

我们拥有所有可能出现的词及其对应的所有可能组成路径(即DAG),那么应该用什么方法去找到一条最可能的路径呢?

jieba中使用了动态规划的方法,这里简单的理解就是对于一个长度为n的句子,由后往前遍历。

假设最后一个词出现的概率为N,倒数第二个词出现的概率为N-1,那么两个词在一起出现概率则为N(N-1),以此类推,直到到达第一个词,计算出所有可能路径中的最大概率路径。这里还需要理解两个名词,重叠子问题,最优子结构,最终得到最优的路径

还是 去北京大学玩 举例:

P(玩)*P(学)*P(大)*P(京)*p(北)*p(去) = 概率1

P(玩)*P(大学)*p(京)*P(北)*P(去) = 概率2

…
各种概率对比 . 概率比较大的 就是最优解 。

未登录词

HMM 求解

jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型 求解 未登录词。

jieba 采用的是 隐马尔可夫HMM (这个我后面详解 )

已知:

状态转移概率:

P={‘B’: {‘E’: -0.510825623765990, ‘M’: -0.916290731874155},
‘E’: {‘B’: -0.5897149736854513, ‘S’: -0.8085250474669937},
‘M’: {‘E’: -0.33344856811948514, ‘M’: -1.2603623820268226},
‘S’: {‘B’: -0.7211965654669841, ‘S’: -0.6658631448798212}}

初始概率:

P={‘B’: -0.26268660809250016,
‘E’: -3.14e+100,
‘M’: -3.14e+100,
‘S’: -1.4652633398537678}

观测序列O

对于每一个待分的句子,都视为一个观测序列,如:去北京大学玩,就是一个长度T为6的观测序列

每一个观测序列,都对应着相同长度的状态序列。这里将汉字按SBME进行标注,分别代表single(单独成词的字)、begin(一个词语开始字)、middle(一个词语中间的字)、end(一个词语结束的字),如:

观测序列:去 / 北京大学 / 玩

状态序列:S / BMME / S

输出概率:

P={‘B’: {’\u4e00’: -3.6544978750449433,
‘\u4e01’: -8.125041941842026,
‘\u4e03’: -7.817392401429855,
‘\u4e07’: -6.3096425804013165,
…}

根据:HMM

在这里插入图片描述
综上 我们 已知:

y,b,a 并且知道x 的几种状态
求: x 的输出顺序 也就是典型的 HMM 已知观察 和转换 求解 隐含状态。

比如:

在这里插入图片描述

求出每一个 字 B ,M ,E,S 的概率 最后 可能得出
S我 S是 B中M国E人
所以就将 中国人 作为一个词 放入。

数据从哪来?

这些状态数据 BMES 概率 根据这个网址 可以得出 。这是人工根据大量的报纸,小说,标记而成 。 可见人工智能有很大人工的工作量 。

参考文献

https://blog.youkuaiyun.com/sinat_33741547/article/details/78690440

https://www.cnblogs.com/skyme/p/4651331.html

NLP深入学习(一):jieba 工具包介绍 本文主要介绍 NLP 相关的分词工具 jieba,介绍其分词、自定义词典、关键词提取、词性标注等功能。 阅读详情

相关推荐

NLP自然语言处理中英文分词工具集锦与基本使用 jieba,snowNLP ,StanfordCoreNLP,thulac等

目录 NLP分词工具集锦 分词实例用文件 一、中文分词工具 (1)Jieba (2)snowNLP分词工具 (3)thulac分词工具 (4)pynlpir 分词工具 (5)StanfordCoreNLP分词工具 (6)Hanlp分词工具 二、英文分词工具 1. NLTK: 2. SpaCy: 3. StanfordCoreNLP: NLP分词工具集锦 分词实例用文件...

种花家的奋斗兔的博客 7182

jieba分词

一、jieba简介 jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,下面是三种模式的特点。 精确模式: 试图将语句最精确的切分,不存在冗余数据,适合做文本分析。 全模式: 将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据。 搜索引擎模式: 在精确模式的基础上,对长词再次进行切分,提高召回率,适合用于搜索引擎分词。 #精确模式 jieba.lcut(text, cut_all=False) #全模式 jieba.lcut

坚果的刻薄 3万+

NLP之jieba分词原理简析

一、jieba介绍 jieba库是一个简单实用的中文自然语言处理分词库。 jieba分词属于概率语言模型分词。概率语言模型分词的任务是:在全切分所得的所有结果中求某个切分方案S,使得P(S)最大。 jieba支持三种分词模式: 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 精确模式,试图将句子最精确地切开,适合文本分析; 搜索引擎模式,在精确模式的基...

miner_zhu的博客 2万+

jieba分词的最详细解读

目录 一,什么是jieba(结巴)库? 二,jieba库的使用规则 三,jieba库具体使用和实例 一,什么是jieba(结巴)库? 字如其名,结巴库主要用于中文分词,很形象的画面想必一下子就出现在了大家的面前,结巴在说话时一个词一个词从嘴里往外蹦的时候,已经成功地模拟了我们jieba函数的处理过程!!! 其次 1:Jieba库是优秀的中文分词第三方库,中文文本需要通过分词获得单个的词语。 2:Jieba库的分词原理:利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词

qq_45288176的博客 2万+

NLP基础—jieba分词

对于节点2,他有2->3, 2->4, 2->4三条路径,我们取概率最大的路径作为节点2的路径概率,并记下概率最大时节点2的结束位置。初始化时,先加载词典文件dict.txt,遍历每一行,生成词语-词数的键值对和总词数,并将生成结果保存到cache中,下次直接从cache中读取即可。Full Mode: 我/ 毕业/ 于/ 四川/ 四川大学/ 大学/ ,/ 我/ 关注/ 了/ 数据/ STUDIO。李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /

2401_84052244的博客 3967

NLP 自然语言处理实战

本文从分词、词频、词向量等基础领域开始讲解自然语言处理的原理,讲解 One-Hot、TF-IDF、PageRank 等算法及 LDA、LDiA、LSA 等语义分析的原理。介绍 Word2vec、GloVe 、Embedding 等常用词嵌入及 NLTK、Jieba 等分词工具的应用。

风尘浪子 1万+

【自然语言处理(NLP)】jieba分词的使用(分词模式、关键词提取)

*自然语言处理(Natural Language Processing,NLP)**是计算机科学领域与人工智能领域中的一个重要方向。它研究的是人类(自然)语言与计算机之间的交互。NLP的目标是让计算机能够理解、解析、生成人类语言,并且能够以有意义的方式回应和操作这些信息。词法分析:将文本分解成单词或标记(token),并识别它们的词性(如名词、动词等)。【自然语言处理(NLP)】jieba分词的使用(分词模式、关键词提取)

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)

本文将手把手教会你使用jieba库进行中文分词和去除停用词,这是学会文本分析的必经之路!

m0_64336780的博客 4万+

NLP自然语言处理之AI深度学习实战-分词:jieba/Stanford NLP/Hanlp-01

分词、词性标注及命名实体识别介绍及应用 分词 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成 一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合 成词序列的过程。 中文/n 分词/n 是/v 其他/p 中文/n (信息,n) 处理/v 的 基础,搜索引擎、 机器翻译(MT)、语音合成、自动分类、自动摘要、自动校对等等,都 需要用到分词。 词性标注 词性 标注(Part-of-Speech tagging 戒POS tagging),又称词类标注 戒者简

gemoumou的python学习实记 1340

NLP自然语言处理分词模块jieba

本文详细介绍了中文分词库jieba的特性和使用方法。jieba 提供了三种主要的分词模式,分别适用于不同的任务场景。此外,它还支持自定义词典、关键词提取、词性标注和并行分词等功能,是一个功能强大、灵活且高效的中文分词工具。

Mr数据杨 2438

保姆级教程:手把手教你用KITTI数据集跑通LIO-SAM(附EVO评估全流程)

本文提供了一份详细的KITTI数据集LIO-SAM实现教程,涵盖数据准备、算法适配和EVO评估全流程。通过解析KITTI数据集特性、解决LIO-SAM适配问题,并利用EVO工具进行精度评估,帮助读者快速掌握激光惯性SLAM技术。特别针对KITTI数据与LIO-SAM的兼容性问题提供了实用解决方案。

weixin_28737603的博客 303

NLP_jieba中文分词的常用模块

NLP_jieba中文分词的常用模块

Hiweir的博客 1888

采用MPU6050的手势遥控器

随着社会的发展与进步,电子产品日益更新,个人家庭迎来了越来越多的智能家电。然而,现在的智能电子设备产品的遥控器多数都是按键形的。操作繁琐不直观,学习成本大。并且对于有老人小孩的家庭,给他们的操作带来了巨大的障碍。手势遥控器是指利用简单的手势来指挥电子设备,获得便捷的操作体验。让家庭成员都可以享受科技发展带来的福利。MPU6050是一个运动传感器,内置陀螺仪,再由电子设备利用判断结果做出相应的响应即...

Sakura的博客小站 6602

jieba分词如何用AI提升中文NLP开发效率

在开发和使用这个工具的过程中,我总结了几点重要经验:不同场景需要选择不同的分词模式,没有一种模式适合所有情况。自定义词典的质量直接影响分词效果,需要持续优化。停用词列表需要根据具体应用定制,通用停用词表不一定适用。TF-IDF关键词提取效果取决于语料库的质量和规模。结合AI技术可以大幅提升工具的能力,但要注意计算资源消耗。

MoonbeamRaven28的博客 995

Alphafold2/multimer Conda环境配置与GPU加速优化指南

本文详细介绍了如何在本地服务器或工作站上,通过Conda环境配置并优化GPU加速来部署Alphafold2及其多聚体版本Alphafold2-multimer。内容涵盖从硬件准备、依赖安装、数据库部署到实战预测与常见报错处理的全流程,重点解决了本地安装过程中的依赖冲突与GPU调用失败等关键问题,帮助研究人员高效运行这一蛋白质结构预测工具。

neovim7hacker的博客 470

深度学习驱动材料科学:晶体生成与性质预测技术综述

深度学习作为人工智能的核心技术,通过模拟人脑神经网络处理复杂数据,在多个领域展现出强大的模式识别与生成能力。其原理在于构建多层非线性变换,从海量数据中自动学习特征表示与映射关系。这一技术价值在于能够高效处理高维、非结构化数据,解决传统方法计算成本高、探索空间有限的问题。在工程实践中,深度学习已广泛应用于计算机视觉、自然语言处理等领域,并正深刻变革材料科学的研究范式。具体到材料领域,它通过学习已知材料的构效关系,实现对新材料性能的快速预测与逆向设计。应用场景包括但不限于新能源材料、半导体、催化剂等领域的高通量

weixin_28695161的博客 414

自然语言处理之jieba分词

英文分词可以使用空格,中文就不同了,一些分词的原理后面再来说,先说下python中常用的jieba这个工具。 首先要注意自己在做练习时不要使用jieba.Py命名文件,否则会出现 jieba has no attribute named cut …等这些,如果删除了自己创建的jieba.py还有错误是因为没有删除jieba.pyc文件。 (1)基本分词函数和用法   首先介绍下分词的三种模...

IAlexanderI的专栏 3553

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

jieba中文分词,关键词提取,词性标注,并行分词,起止位置,文本挖掘,NLP自然语言处理

1. NLP 走近自然语言处理 概念  Natural Language Processing/Understanding,自然语言处理/理解 日常对话、办公写作、上网浏览 希望机器能像人一样去理解,以人类自然语言为载体的文本所包含的信息,并完成一些特定任务 内容 中文分词、词性标注、命名实体识别、关系抽取、关键词提取、信息抽取、依存分析、词嵌入…… 应用 篇章理解、文本摘要、情感分析、...

Python开发工程师 5453

基于多智能体架构的AI模拟法庭系统:律师案件预演的革命性工具

多智能体系统(Multi-Agent System)是人工智能领域的重要分支,它通过多个自主或半自主的智能体协同工作,模拟复杂的社会交互与决策过程。其核心原理在于分布式问题求解,每个智能体具备感知、推理和行动能力,通过通信与协作实现整体目标。在工程实践中,多智能体架构的价值在于能够模拟真实世界中的信息不对称与策略独立性,从而在复杂决策场景中提供更贴近现实的推演。这一技术正被应用于法律科技领域,通过构建物理隔离的智能体环境,模拟法庭对抗中的信息屏障与策略博弈。例如,在AI模拟法庭系统中,原告、被告、法官等角色

weixin_42561249的博客 394

QML 果冻抖动:用 Scale 动画模拟 Q 弹反馈

介绍果冻抖动效果:点击后卡片通过多段 ParallelAnimation 实现 Scale X/Y 反向缩放和逐步衰减,模拟果冻弹性形变;进阶版本加入小幅 Rotation 增加活泼感,适合游戏、儿童应用等趣味反馈场景。

u011186532的专栏 425

NLP学习(五)jieba分词-Python3实现

中文分词 对于NLP(自然语言处理)来说,分词是一步重要的工作,市面上也有各种分词库,11款开放中文分词系统比较。 1.基于词典:基于字典、词库匹配的分词方法;(字符串匹配、机械分词法) 2.基于统计:基于词频度统计的分词方法; 3.基于规则:基于知识理解的分词方法。 第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。 第二类基于统计的分词方法

qq_30868737的博客 1062

Calibre 3DSTACK Flow Example(5-1)

摘要: 本文详细介绍了使用Calibre 3DSTACK工具验证2.5D中介层IC的设计流程。该设计由控制器、两个RAM芯片和中介层组成,各裸片通过255层的焊盘图形和端口文本实现连接。流程包括:1)准备通过DRC/LVS验证的裸片版图;2)创建3DSTACK规则文件定义装配操作;3)设置全局选项并定义各裸片的图层属性;4)指定图层间的电气连接性;5)通过坐标精确放置裸片形成3D堆叠。文中提供了完整的规则文件示例,并说明了如何生成3D装配视图进行物理验证,为后续连接性检查奠定基础。

u013620135的博客 2165

【NLP】Jieba中文分词

Jieba分词支持自定义词典功能,允许用户添加特定领域或特定应用场景的词汇,以提高分词的准确性和识别率。创建自定义词典文件词语 词频 词性词语:需要添加的词汇。词频:可选,词频越高,分词时越倾向于将此词作为一个整体分出。默认值是1。词性:可选,词语的词性标注。自然语言处理 3 n机器学习 5 n深度学习 2 n加载自定义词典: 使用添加单个词汇jieba.add_word('自定义词')jieba.add_word('深度学习', freq=20000, tag='n')删除单个词汇。

2303_80346267的博客 1421

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

视频教程-2020年新版 自然语言处理课程jieba分词视频课程-NLP

2020年新版 自然语言处理课程jieba分词视频课程 6年开发经验,具有丰...

weixin_34217362的博客 260

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: NLP之常见任务
下一篇: NLP之HMM(隐马尔可夫)
ithinking110
博客等级 码龄14年 54粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值