自然语言处理——分词系统(正向最大匹配法)

article/2025/10/15 22:02:30

算法分析

正向最大匹配法,对于输入的一段文本从左至右、以贪心的方式切分出当前位置上长度最大的词。正向最大匹配法是基于词典的分词方法,其分词原理是:单词的颗粒度越大,所能表示的含义越确切。该算法主要分两个步骤:
该算法主要分为两个步骤:
1、一般从一个字符串的开始位置,选择一个最大长度的词长的
片段,如果序列不足最大词长,则选择全部序列。
2、首先看该片段是否在词典中,如果是,则算为一个分出来的词,如果不是,则从右边开始,减少一个字符,然后看短一点的这个片段是否在词典中,依次循环,逐到只剩下一个字。
3、序列变为第2步骤截取分词后,剩下的部分序列
接下来通过一个实力给大家讲解具体操作。

形象化演示

首先我们需要选取一个最大的截取长度,通常我们选取词典中单个分词的最大长度,在如下案例中,最长的分词为(中国人)长度为三,那我们每次就取三个字符来进行分词
在这里插入图片描述
从左侧开始选中前三个字符进入带分序列
在这里插入图片描述
判断此时该序列是否存在于给定的词典中。很遗憾“我是中”不在词典中,那么从右侧开始将最后一个字符从待分序列中删去
在这里插入图片描述
很遗憾,“我是”依然不在分词词典中,继续从右侧删去字符
在这里插入图片描述
如上图所示,若待分序列的长度为1,则判定为单个词,将其存入已分列表中,并从待分序列中删除,在剩余的序列中重新组建待分序列,继续下一轮分词
在这里插入图片描述
经过几轮循环,所有待分序列长度为零,得到了一个分词结果,如下图所示
在这里插入图片描述

代码实现

dict.txt文件(在这里只是展示了简单版的词典,可以自己制作任意词组或者从网站下载)
在这里插入图片描述

#创建字典列表
dic = []def init():"""读取词典文件载入词典:return:"""with open("dict.txt", encoding="utf8") as dic_input:for word in dic_input:dic.append(word.strip())#实现正向最大匹配法
def cut_words(raw_sentence, word_dic):#统计词典种最长的词(若小于待切分总长度,则每次从未匹配处找这么长的字符串开始匹配)max_length = max(len(word) for word in dic)sentence = raw_sentence.strip()   #移除字符串内的空格#统计序列长度words_length = len(sentence)#存储切分好的词语cut_word = []while words_length > 0:max_cut_length = min(max_length, words_length)#创建待分序列subsub = sentence[0 : max_cut_length]#进行一轮分词,在左侧切出一个词while max_cut_length > 0:if sub in dic:  #若待切分的词在词典中,则将其加入已分列表,跳出循环cut_word.append(sub)breakelif max_cut_length == 1:   #剩下单个字,将其切分,并跳出循环cut_word.append(sub)breakelse:     #都不符合则从右侧去掉一个词,重新分词max_cut_length = max_cut_length - 1sub = sub[0 : max_cut_length]#将切掉的单词删去sentence = sentence[max_cut_length:]words_length = words_length - max_cut_lengthwords = "/".join(cut_word)return wordsdef main():"""于用户交互接口:return: """init()while True:print("请输入您要分词的序列")input_str = input()if not input_str:breakresult = cut_words(input_str, dic)print("分词结果:")print(result)
if __name__ == '__main__':main()

效果展示

输入序列:我是中国人,我热爱我的祖国
分词结果:我/是/中国人/,/我/热爱/我/的/祖国/和/人民
在这里插入图片描述


http://chatgpt.dhexx.cn/article/KTMHgEpx.shtml

相关文章

LTE学习-信道均衡(ZF)

前面学习了信道估计和插值,现在说说信道均衡,信道均衡的作用就是根据信道估计和插值的结果尽可能恢复发射数据。信道均衡技术主要有两种,迫零(ZF)均衡和最小均方误差(MMSE)均衡,实际上还有一个最大似然(ML)均衡,但计算…

解调去载波后均衡信道与实际信道的关系

关注公号【逆向通信猿】更精彩!!! 通常,信号经过调制后发送,会经过信道作用,示意图可以表示为 其中 x ( t ) x(t) x(t)为基带信号, e

WLAN信道利用率

WLAN空口/信道利用率监控大致如下 参数 说明 Ctl channel 主信道号 Channel Band 信道带宽 Ext Channel-11N产品支持 辅信道类型(Bellow/Above) Bellow:辅信道向下绑定 Above:辅信道向上绑定 CtlBusy(%) 主信道利用率 TxBusy(%) 发送帧利用率 RxBusy(%) 接收帧利用…

第7章:OFDM 信道估计与均衡(1)

第7章(1)内容如下: 一、OFDM相关书籍二、OFDM基本原理三、OFDM经过高斯白噪声信道的误码率分析三、总结 本人最近搞懂了OFDM的一些知识,便给本章取名为第7章——OFDM信道估计、均衡。本文所有代码下载地址是:123kevin4…

信道利用率

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_42682806/article/details/84592569 这又是计算机网络中的一个计算题所在,真题…

无线通信——基于MATLAB实现OFDM系统(信道估计与均衡)

基于MATLAB实现OFDM系统基带信号在频率选择性衰落信道条件下的发送与接收 题目及要求: 仿真系统构成:信号输入(为随机比特流)、OFDM调制、仿真信道传输、OFDM解调、信号输出(可能存在误码的比特率)&#…

信道模型

下面是4种信道模型: 什么是信道模型?信道模型是用数学表达式来描述信道特性的,H_rx_tx,例如h21表示1发2收,下图的n表示噪声加在每个接收天线上,在实际中,很多噪声进入一个接收天线中,例如n1是所…

第7章:OFDM 信道估计与均衡(4)

第7章(4)内容如下: 一、导频结构与图案二、基于导频的信道估计算法和插值方法 本文所有可运行代码下载地址是:123kevin456/OFDM- 一、导频结构与图案 前三讲介绍了OFDM经过AWGN信道和衰落信道的误码率情况,其中在第&…

信道均衡之线性均衡——迫零滤波器

在通讯系统中,信道是影响信号传输质量的最重要因素,而信道均衡目的是则为了消除信道的影响。 一个基带传输的通信系统的简单示意图如图1,数字信号m(n)经过单位冲激响应为ht(t)的发送滤波器后,变成模拟信号 s(t), 然后通过的单位冲…

4.4.5 信道均衡(二)

4.4.5 信道均衡(二) 基本上 《XILINX FPGA的OFDM通信系统基带设计》一书已经带有各部分的代码,我做的工作就是将代码整合到一起,并按照仿真修改,让其能正常工作。本文将对实现中的重点部分做解释,并指出…

基带信号传输之信道均衡

信道中的频域均衡器中,它是用可调滤波器的频域特性去补偿基带系统的频域特性,使系统总的传输函数满足无失真传输条件; 时域均衡器,使用均衡器产生的波形去补偿已经变形的波形,使总的输出波形满足无码间串扰的条件。 …

无线衰落信道、多径与OFDM、均衡技…

参见 张贤达 通信信号处理。OFDM移动通信技术原理与应用,移动通信原理 吴伟陵 目录 无线信道的传播特征 无线信道的大尺度衰落 阴影衰落 无线信道的多径衰落 多径时延与与叠加后的衰落 频率选择性衰落和非频率选择性衰落 符号间干扰ISI的避免 多径信号的时延扩展引…

【通信技术专题:信道均衡器】

| 通信技术 通信技术发展至今,每个人都离不开它的存在。通信系统的核心主要在于物理层,物理层的关键在基带。在通信系统中,逻辑开发工程师主要工作就在基带和射频部分,甚至射频都不在从事的任务内。今天给大家简单讲讲基带接收机…

[培训-无线通信基础-7]:信道均衡器(信道估计、信道均衡)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article/details/118832368 目录 引言: 第1章 均衡器概述 1.1 什么是均衡器 1.2 如何进行信道估计 第2章 线性均衡器…

4.4.5 信道均衡(一)

4.4.5 信道均衡(一) 一、为什么要信道均衡? 数字信号在实际信道上传输时,由于信道传输特性不理想以及信道噪声的影响,接收端接收到的信号不可避免地发生错误。为了恢复发送的数据信息,接收端需要估计出信道…

信道均衡理论

一、基本概念 什么是均衡? 在得到的 Y [ n ] Y[n] Y[n]当中,存在符号间干扰和噪声。在通信当中,把符号间干扰去掉的技术叫作均衡( equalization)。 横向抽头滤波器 图中 x ( t ) x(t) x(t)为存在符号间干扰的模拟基带信号, y ( t ) y(t) y(…

信道均衡的原理

信道均衡的概念 信道均衡(Channel equalization)是指为了提高衰落信道中的通信系统的传输性能而采取的一种抗衰落措施。它主要是为了消除或者是减弱宽带通信时的多径时延带来的码间串扰(ISI)问题。 其机理是对信道或整个传输系…

千锋python培训多久

千锋Python学员拿下华为月薪25000元14薪offer,还收获了自己的美满爱情。 更赞的是和他一起学的女朋友,也拿下了字节跳动23000元15薪offer。 小千激动的久久不能回神,小两口年薪妥妥的近70万!实力开奖 男生之前的第一个offer是深…

千峰python线下培训

Hello,各位锋迷们,我是小千。 今天周日,给大家推荐千锋金牌讲师宋宋最新出品的一套Python办公自动化教程。 扫码一键直达B站课程学习地址: 传送门:https://m.bilibili.com/video/BV1wA411c7wB 学Python的同学对宋宋老师很熟悉…

千锋培训学python怎么样

很多小白在学习IT技术之前最为苦恼的就是不知道具体学习哪个技术方向,不了解自己的喜好,不知道自己擅长什么,网络检索也得不到很好的意见指导,那么今天就看看千锋Python培训讲师对此是怎么说的吧。 近年来,Python作为编…