分词任务介绍-(十)

分词任务

  • 中文分词
    • 正向最大匹配
      • 实现方式一
      • 实现方式二
    • 反向最大匹配
    • 双向最大匹配
    • jieba分词
    • 上述分词方法的缺点总结
    • 基于机器学习
  • 总结
    • 分词技术
    • 经验总结

中文分词

正向最大匹配

分词的步骤

1.收集整理一个词表,类似于字典。如下图
2.对于待分词的句子,或者字符串,从前向后寻找最长,在词表中出现的词。
3.并循环执行1-2;直到字符串末尾

 图一
释义: 上述中,在句子中找到的最长匹配的词就是北京大学,切割后,继续寻找、依次类推

实现方式一

1.先找出词表中最大词的长度,上述中,最大为北京大学,为4
2.从字符串最左侧开始,按照最大词的长度,即为4,设置一个窗口,检查第一个窗口中的词是否在词表中,即是否为最大词
3.如果在词表中,则在词的边界,即右侧进行划分,然后向右移动,截取下一个窗口;
4.如果不在词表中,则右侧回退一个字符,就是缩小一个窗口,看剩下的窗口内的字符是否为一个词,是的话,就截取;不是就继续缩小。截取后,在截取的边界继续执行第3步
5.循环执行上述3-4步骤;完成整个句子的切割

在这里插入图片描述

实现方式二

特点 构建的词表有些特点
举例说明: 根据我们前面有词表:北京、北京大学、生前、报道
我们构建出词表如下:
在这里插入图片描述
释义:

上述构建的词表中,0代表前缀;1代表一个真正的词
我们想要构建的词表的每一个词都可以通过上述的构建方式表示出来

分词的逻辑

1.首先还是从字符串的左侧到右侧,从前往后走,并且每次只取一个字
2.取到第一个字,在词表中判断,是否为前缀或者是一个词,如果都不是,则直接在该处切分
3.如果是前缀或者是词,则往右侧多走一个字,用这两个字判断是否为前缀或者词,如果都不是,则切分;否则,循环第3步
4.循环2-3步;直接完成切分

如下图:
在这里插入图片描述

反向最大匹配

释义:和正向最大匹配的方向相反,正向最大匹配是从左往右,从句子的前往后,反向最大匹配,就是从右往左,从句子后到前,进行匹配;其他的匹配逻辑和方案都相同

如图所示:
在这里插入图片描述

双向最大匹配

释义: 同时进行正向最大切分、负向最大切分,之后比较两者的结果,最后决定一句话的切分,采用那种切分结果

比较的策略:

  1. 单字词:词表中可以有单字词,从分词的角度,我们会把他看成一个词;一般单字词少,切分效果相对好些
  2. 非字典词:未在词典出现过的词,一般会分为单字词;比如,文本中出现的英文、一串数字等
  3. 词总量,两种方法,在切割同一个句子时,可能获得的词量是不一样的,一般来说,词总量越少,分的相对会好些

jieba分词

介绍:jieba是一个python库,可以方便的做中文分词
分词逻辑:

1.在做这个任务前,就有一个分好词的语料,这个语料分的很好,并且,将其中的每个词的出现的频次统计出来,即事先有一份词频的表
2.然后根据词表,将一句话,或者需要分词的语料中所有的切分方式,切分出来
3.统计每种方式的总词频数,选取切分结果最高的作为分词结果

如图:
在这里插入图片描述

上述分词方法的缺点总结

  1. 对词表极为依赖,如果没有词表,则无法进行;如果词表中缺少需要的词,结果也不会正确
  2. 切分过程中,不会关注整个句子的意思,而是机械的切割一个个片段
  3. 文本中的错别字问题无法解决,会造成连锁的切分错误
  4. 对实体名无法枚举到词表中,比如:城市名、人名等;但是这些词却会造成切分的错误

基于机器学习

释义: 我们将上述分词的任务,转化为一个分词模型的训练任务,用模型去解决分词问题。

分词转化为分词模型的逻辑:

1.分词本质上是需要将一句话按照其内在的含义,将去拆分开,那么我们用模型如何去表示和预测相关信息,可以表示去语义的拆分呢?
2.RNN模型,是将一句话的每一个字按照顺序输入,并且每个字计算后都会有个输出结果,那么我们可以根据每个字的输出结果判断是否在该位置拆分
3.这样就转化为,用RNN模型去预测当前句子的每个字的位置是否拆分的问题,
4.对句子中的每一个词进行2分类判断的任务:即如下所示,1表示边界,0表示不是边界

在这里插入图片描述

总结

分词技术

  1. 对于中文分词的研究在逐渐减少
  2. 目前的分词在由大部分情况下,效果已经比较理想,优化空间不大
  3. 分词即使发生错误,下游任务不是一定发生错误,所以不值得花大量精力优化分词
  4. 随着神经网络和预训练模型的兴起,中文任务逐渐不再需要分词,甚至不做分词,效果更好

经验总结

  1. 相同的任务有不同的算法可以完成,其结果和效率各有优劣
  2. 空间换时间,是一种常用的提升性能思路
  3. 多种算法组合使用,可能会获得更好的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/379142.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

总结单例模式的写法

一、单例模式的概念 1.1 单例模式的概念 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。就是当前进程确保一个类全局只有一个实例。 1.2 单例模式的优…

2024 China Joy 前瞻 | 腾讯网易发新作,网易数智携游戏前沿科技、创新产品以及独家礼盒,精彩不断!

今年上半年,CES、MWC和AWE三大国际科技展轮番轰炸,吸引全球科技爱好者的高度关注,无论是新潮的科技产品,还是对人工智能的探索,每一项展出的技术和产品都引起了市场的热议。而到了下半年,一年一度的China J…

Kafka消息队列python开发环境搭建

目录 引言 Kafka 的核心概念和组件 Kafka 的主要特性 使用场景 申请云服务器 安装docker及docker-compose VSCODE配置 开发环境搭建 搭建Kafka的python编程环境 Kafka的python编程示例 引言 Apache Kafka 是一个分布式流处理平台,由 LinkedIn 开发并在 2…

Android View的绘制流程

1.不管是View的添加,还是调用View的刷新方法invalidate()或者requestLayout(),绘制都是从ViewRootImpl的scheduleTraversals()方法开始 void scheduleTraversals() {if (!mTraversalScheduled) {mTraversalScheduled true;mTraversalBarrier mHandler…

SpringCloud教程 | 第九篇: 使用API Gateway

1、参考资料 SpringCloud基础篇-10-服务网关-Gateway_springcloud gateway-CSDN博客 2、先学习路由,参考了5.1 2.1、建了一个cloudGatewayDemo,这是用来配置网关的工程,配置如下: http://localhost:18080/aaa/name 该接口代码如…

科普文:详解23种设计模式

概叙 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four(GoF)的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式…

等保-Linux等保测评

等保-Linux等保测评 1.查看相应文件,账户xiaoming的密码设定多久过期 rootdengbap:~# chage -l xiaoming Last password change : password must be changed Password expires : pass…

理解类与对象:面向对象基础

目录 1. 类的定义1.1 格式1.2 访问限定符1.3 类域 2.实例化2.1 实例化概念2.2 对象大小 3.this指针 1. 类的定义 1.1 格式 class为定义类的关键字,Date为类的名字,{ }中为类的主体,注意类定义结束后面的分号不能省略。类体中内容称为类的成…

【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks

阅读时间:2023-12-26 1 介绍 年份:2019 作者:Johannes von Oswald,Google Research;Christian Henning,EthonAI AG;Benjamin F. Grewe,苏黎世联邦理工学院神经信息学研究所 期刊&a…

如何在项目中打印sql和执行的时间

目标:打印DAO方法中sql和执行的时间 一种方式是去实现Mybatis的拦截器Interceptor ,比较麻烦; 这里介绍一种比较简单的实现方式; 1、如何打印sql? 配置文件加这个可以打印出com.zhenhui.ids.busi.watch包下执行的sq…

3D线上展厅:元宇宙时代的营销利器,流量暴增的秘密武器!

在体验经济蓬勃发展的当下,企业营销领域正以前所未有的热情探索创新路径,元宇宙这一融合了无限想象与未来科技的概念,成为了众多品牌竞相追逐的新蓝海。3D技术、增强现实(AR)、虚拟现实(VR)以及…

【ProtoBuf】proto 3 语法 -- 详解

这个部分会对通讯录进行多次升级,使用 2.x 表示升级的版本,最终将会升级如下内容: 不再打印联系人的序列化结果,而是将通讯录序列化后并写入文件中。 从文件中将通讯录解析出来,并进行打印。 新增联系人属性&#xff…

谈谈大数据采集和常见问题

01 什么是数据采集 数据采集是大数据的基石,不论是现在的互联网公司,物联网公司或者传统的IT公司,每个业务流程环节都会产生大量的数据,同时用户操作的日志也会产生大量的数据,为了将这些结构化和非结构化的数据进行…

【常见开源库的二次开发】基于openssl的加密与解密——单向散列函数(四)

目录: 目录: 一、什么是单项散列函数? 1.1 如何验证文件是否被修改过 1.2 单项散列函数: 二、单向hash抗碰撞 2.1 弱抗碰撞(Weak Collision Resistance) 2.2 强抗碰撞(Strong Collision Resista…

Webpack详解

Webpack Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。它允许开发者将项目中的资源(如 JavaScript、CSS、图片等)视为模块,通过分析和处理这些模块之间的依赖关系,将它们打包…

Python酷库之旅-第三方库Pandas(024)

目录 一、用法精讲 61、pandas.to_numeric函数 61-1、语法 61-2、参数 61-3、功能 61-4、返回值 61-5、说明 61-6、用法 61-6-1、数据准备 61-6-2、代码示例 61-6-3、结果输出 62、pandas.to_datetime函数 62-1、语法 62-2、参数 62-3、功能 62-4、返回值 62-…

ospf的MGRE实验

第一步:配IP [R1-GigabitEthernet0/0/0]ip address 12.0.0.1 24 [R1-GigabitEthernet0/0/1]ip address 21.0.0.1 24 [R1-LoopBack0]ip address 192.168.1.1 24 [ISP-GigabitEthernet0/0/0]ip address 12.0.0.2 24 [ISP-GigabitEthernet0/0/1]ip address 21.0.0.2 24…

Hadoop3:HDFS-存储优化之纠删码

一、集群环境 集群一共5个节点,102/103/104/105/106 二、纠删码原理 1、简介 HDFS默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。Hadoop3.x引入了纠删码,采用计算的方式&#x…

新一代大语言模型 GPT-5 对工作与生活的影响及应对策略

文章目录 📒一、引言 📒二、GPT-5 的发展背景 🚀(一)GPT-4 的表现与特点 🚀(二)GPT-5 的预期进步 📒三、GPT-5 对工作的影响 🚀(一&#xf…

交叉编译ethtool(ubuntu 2018)

参考文章:https://www.cnblogs.com/nazhen/p/16800427.html https://blog.csdn.net/weixin_43128044/article/details/137953913 1、下载相关安装包 //ethtool依赖libmul git clone http://git.netfilter.org/libmnl //ethtool源码 git clone http://git.kernel.or…