自然语言处理--双向匹配算法
自然语言处理作业1--双向匹配算法
一、概述
双向匹配算法是一种用于自然语言处理的算法,用于确定两个文本之间的相似度或匹配程度。该算法通常使用在文本对齐、翻译、语义匹配等任务中。
在双向匹配算法中,首先将两个文本分别进行处理,然后分别从两个文本的角度进行匹配。这种双向匹配可以更全面地考虑两个文本之间的相似性,避免单向匹配算法可能出现的遗漏或错误匹配的情况。
双向匹配算法通常包括以下步骤:
- 分词处理:对两个文本分别进行分词处理,将文本分割成词语或短语的序列。
- 特征提取:从两个文本中提取特征,如词频、词性、语义信息等。
- 匹配计算:使用不同的匹配算法(如余弦相似度、编辑距离等)计算两个文本之间的相似度或匹配程度。
- 结果合并:将两个文本的匹配结果进行合并,得到最终的匹配结果。
双向匹配算法能够更准确地捕捉两个文本之间的相似性,提高了文本对齐、翻译、语义匹配等任务的准确性和效率。因此,在自然语言处理领域中得到了广泛的应用。
二、算法描述
正向最大匹配算法是一种中文分词算法,用于将连续的中文文本切分成词语。步骤如下:
- 从切分列表的第一个位置开始,取出长为最大词长MaxLen的词语作为子串。
- 判断子串是否在词库中存在,若存在则将该词作为分词结果,并将切分列表中对应的部分删除。
- 若子串在词库中不存在,则将子串的最后一个字符去掉,得到一个新的子串。
- 重复步骤2和步骤3,直到子串为空或切分列表为空。
- 返回分词结果。
反向最大算法也是一种中文分词算法,与正向最大匹配算法相反,从待分词文本的末尾开始逆向切分成词语。步骤如下:
- 从切分列表最后一个位置开始,取出长为最大词长MaxLen的词语作为子串。
- 判断子串是否在词库中存在,若存在则将该词作为分词结果,并将切分列表中对应的部分删除。
- 若子串在词库中不存在,则将子串的第一个字符去掉,得到一个新的子串。
- 重复步骤2和步骤3,直到子串为空或切分列表为空。
- 返回分词结果。
逆向最大匹配算法与正向最大匹配算法的区别在于匹配的方向,逆向最大匹配算法从后往前匹配词语,但原理和步骤与正向最大匹配算法相似。
三、详细描述
以“对外经济技术合作与交流不断扩大。”为例,详细描述算法如下:
正向最大匹配算法:
假设最大词长MaxLen为5
- 取子串 “对外经济技”,扫描词典,没有匹配,子串长度减1变为“对外经济”
- “对外经济”,扫描词典,没有匹配,子串长度减1变为“对外经”
- “对外经”,扫描词典,没有匹配,子串长度减1变为“对外”
- “对外”, 扫描词典,有匹配,输出“对外”,输入变为“经济技术合”
- “经济技术合”,扫描词典,没有匹配,子串长度减1变为“经济技术”
- “经济技术合”,扫描词典,没有匹配,子串长度减1变为“经济技术”
- “经济技”,扫描词典,没有匹配,子串长度减1变为“经济”
- “经济”,扫描词典,有匹配,输出“经济”,输入变为“技术合作与”
- “技术合作与”,扫描词典,没有匹配,子串长度减 1 变为“技术合作”
- “技术合作”,扫描词典,没有匹配,子串长度减 1 变为“技术合”
- “技术合”,扫描词典,没有匹配,子串长度减 1 变为“技术”
- “技术”,扫描词典,有匹配,输出“技术”,输入变为“合作与交流”
- “合作与交流”,扫描词典,没有匹配,子串长度减 1 变为“合作与交”
- “合作与交”,扫描词典,没有匹配,子串长度减 1 变为“合作与”
- “合作与”,扫描词典,没有匹配,子串长度减 1 变为“合作”
- “合作”,扫描词典,有匹配,输出“合作”,输入变为“与交流不断”
- “与交流不断”,扫描词典,没有匹配,子串长度减 1 变为“与交流不”
- “与交流不”,扫描词典,没有匹配,子串长度减 1 变为“与交流”
- “与交流”,扫描词典,没有匹配,子串长度减 1 变为“与交”
- “与交”,扫描词典,没有匹配,子串长度减 1 变为“与”
- “与”,扫描词典,有匹配,输出“与”,输入变为“交流不断扩”
- “交流不断扩”,扫描词典,没有匹配,子串长度减 1 变为“交流不断”
- “交流不断”,扫描词典,没有匹配,子串长度减 1 变为“交流不”
- “交流不”,扫描词典,没有匹配,子串长度减 1 变为“交流”
- “交流”,扫描词典,有匹配,输出“交流”,输入变为“不断扩大。”
- “不断扩大。”,扫描词典,没有匹配,子串长度减 1 变为“不断扩大”
- “不断扩大”,扫描词典,没有匹配,子串长度减 1 变为“不断扩”
- “不断扩”,扫描词典,没有匹配,子串长度减 1 变为“不断”
- “不断”,扫描词典,有匹配,输出“不断”,输入变为“扩大。”
- “扩大。”,扫描词典,没有匹配,子串长度减 1 变为“扩大”
- “扩大”,扫描词典,有匹配,输出“扩大”, 输入变为“。”
- “。”,扫描词典,有匹配,输入变为“”,扫描终止
正向最大匹配法最终的切分结果为:“对外/经济/技术/合作/与/交流/不断/扩大/。”
反向最大匹配算法:
假设最大词长MaxLen为5
- 取子串 “不断扩大。”,扫描词典,没有匹配,子串长度减1变为“不断扩大”
- “断扩大。”,扫描词典,没有匹配,子串长度减1变为“扩大。”
- “扩大。”,扫描词典,没有匹配,子串长度减1变为“大。”
- “大。”,扫描词典,没有匹配,子串长度减1变为“。”
- “。”,扫描词典,有匹配,输出“。”,输入变为“流不断扩大”
- “流不断扩大”,扫描词典,没有匹配,子串长度减1变为“不断扩大”
- “不断扩大”,扫描词典,没有匹配,子串长度减1变为“断扩大”
- “断扩大”,扫描词典,没有匹配,子串长度减1变为“扩大”
- “扩大”,扫描词典,有匹配,输出“扩大”,输入变为“与交流不断”
- “与交流不断”,扫描词典,没有匹配,子串长度减1变为“交流不断”
- “交流不断”,扫描词典,没有匹配,子串长度减1变为“流不断”
- “流不断”,扫描词典,没有匹配,子串长度减1变为“不断”
- “不断”,扫描词典,有匹配,输出“不断”,输入变为“合作与交流”
- “合作与交流”,扫描词典,没有匹配,子串长度减1变为“作与交流”
- “作与交流”,扫描词典,没有匹配,子串长度减1变为“与交流”
- “与交流”,扫描词典,没有匹配,子串长度减1变为“交流”
- “交流”,扫描词典,有匹配,输出“交流”,输入变为“技术合作与”
- “技术合作与”,扫描词典,没有匹配,子串长度减1变为“术合作与”
- “术合作与”,扫描词典,没有匹配,子串长度减1变为“合作与”
- “合作与”,扫描词典,没有匹配,子串长度减1变为“作与”
- “作与”,扫描词典,没有匹配,子串长度减1变为“与”
- “与”,扫描词典,有匹配,输出“与”,输入变为“济技术合作”
- “济技术合作”,扫描词典,没有匹配,子串长度减1变为“技术合作”
- “技术合作”,扫描词典,没有匹配,子串长度减1变为“术合作”
- “术合作”,扫描词典,没有匹配,子串长度减1变为“合作”
- “合作”,扫描词典,有匹配,输出“合作”,输入变为“外经济技术”
- “外经济技术”,扫描词典,没有匹配,子串长度减1变为“经济技术”
- “经济技术”,扫描词典,没有匹配,子串长度减1变为“济技术”
- “济技术”,扫描词典,没有匹配,子串长度减1变为“技术”
- “技术”,扫描词典,有匹配,输出“技术”,输入变为“对外经济”
- “对外经济”,扫描词典,没有匹配,子串长度减1变为“外经济”
- “外经济”,扫描词典,没有匹配,子串长度减1变为“经济”
- “经济”,扫描词典,有匹配,输出“经济”,输入变为“对外”
- “对外”,扫描词典,有匹配,输出“对外”,输入变为“”,扫描终止
反向最大匹配法最终的切分结果为:“对外/经济/技术/合作/与/交流/不断/扩大/。”
四、软件演示

相关文章:
自然语言处理--双向匹配算法
自然语言处理作业1--双向匹配算法 一、概述 双向匹配算法是一种用于自然语言处理的算法,用于确定两个文本之间的相似度或匹配程度。该算法通常使用在文本对齐、翻译、语义匹配等任务中。 在双向匹配算法中,首先将两个文本分别进行处理,然后…...
IDEA 2023.3.2 安装教程
1.下载2023.3.2版本IDEA 链接:https://pan.baidu.com/s/1RkXBLz6qxsd8VxXuvXCEMA?pwd5im6 提取码:5im6 2.安装 3.解压文件,进入,选择方式3 4.将下面文件夹复制到任意位置(不要有中文路径) 5.进入下面文…...
C语言常见面试题:什么是宏,宏的作用是什么?
宏在计算机科学中是一种批量处理程序命令,它是一种抽象的规则或模式,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。在编译时,预处理器会对宏进行…...
【0248】Background Writing实现机制分析
文章目录 1. 前言2. 有了checkpoint,为何还需要background writing?2.1 checkpoint和background writing有何差异? 如何协同工作?2.2 background writing如何工作? 职责是什么?1. 前言 本文是Background Writing进程理论篇,源码剖析实战篇会在后面给出。本文的主要内容…...
基于springboot+vue的教师工作量管理系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...
4-新建子模块(尝鲜)
新建子模块 Maven多模块下新建子模块流程案例。 1、新建业务模块目录,例如:ruoyi-test。 2、在ruoyi-test业务模块下新建pom.xml文件以及src\main\java,src\main\resources目录。 <?xml version"1.0" encoding"UTF-8&…...
反序列化字符串逃逸(上篇)
首先,必须先明白,这个点并不难,我给大家梳理一遍就会明白。 反序列化字符串逃逸就是序列化过程中逃逸出来字符,是不是很简单,哈哈哈! 好了,不闹了,其实: 这里你们只要懂…...
[C++]使用yolov5的onnx模型结合onnxruntime和bytetrack实现目标追踪
【官方框架地址】 yolov5框架:https://github.com/ultralytics/yolov5 bytetrack框架:https://github.com/ifzhang/ByteTrack 【算法介绍】 Yolov5与ByTetrack:目标追踪的强大组合 Yolov5和ByTetrack是两种在目标追踪领域具有显著影响力…...
i2c接口验证
用i2cdetect命令。 1,检测有几组i2c总线在系统上 i2cdetect -l 2,查询i2c总线上挂接的设备及设备的地址 i2cdetect -y <number> i2cdetect -y 0命令用于扫描I2C总线/dev/i2c-0,并列出所有在该总线上存在的有效I2C设备地址。...
1、Pandas 数据结构:从 Series 到 DataFrame
目录 Series 创建 Series Series 索引和选择 DataFrame 创建 DataFrame DataFrame 索引和选择 DataFrame 操作和转换 数据结构转换 Series Series 是 Pandas 中的一维数组形式的数据结构,它可以包含任何数据类型(整数、字符串、浮点数、Python对象…...
MySQL函数—字符串函数
MySQL函数—字符串函数 函数功能CONCAT(s1,s2,...sn)字符串拼接,将s1,s2,...sn拼接成一个字符串LOWER(str)将字符串全部转为小写UPPER(str)将字符串全部转为大写LPAD(str,n,pad)左填充,用字符串pad对str左边进行填充,达到n个字符串长度RPAD(s…...
PLC从HTTP服务端获取JSON文件,解析数据到寄存器
智能网关IGT-DSER集成了多种PLC协议,方便实现各种PLC与HTTP服务端之间通讯。通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,配置URL,即可采用POST命令,将JSON文件提交给HTTP的服务端; 服务端有返回的JSON&…...
LeetCode 46. 全排列
46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#…...
NVMe TCG安全数据存储简介
NVMe(非易失性内存主机控制器接口规范)与TCG(可信计算组)的集成主要体现在数据安全、固件验证和硬件信任根等方面,以确保存储设备的数据保护能力和安全性。 TCG Opal定义了一套针对自加密硬盘(SED, Self-En…...
Linux命令-ab命令(Apache服务器的性能测试工具 )
Apache服务器的性能测试工具 ab命令 是一个测试你 Apache http 服务器的工具,你可以通过这个工具,指定一个单位时间内向 apache 发出的请求数量来看看你的 Apache 和机器配合的性能如何。 语法 []内容为ab命令后跟的语法,eg:ab …...
蓝桥杯java基础
数组的倒序与隔位输出 时间限制:1.000S 空间限制:128MB 题目描述 给定一个整数数组,编写一个程序实现以下功能: 1. 将输入的整数数组倒序输出,每个数之间用空格分隔。 2. 从正序数组中,每隔一个单位&a…...
Unity3d引擎中使用AIGC生成的360全景图(天空盒)
前言 在这里与Skybox AI一起,一键打造体验无限的360世界,这是这个AIGC一键生成全景图的网站欢迎语。 刚使用它是23年中旬,在没有空去给客户实地拍摄全景图时,可以快速用它生成一些相关的全景图,用作前期沟通的VR de…...
React Router v6 改变页面Title
先说正事再闲聊 1、在路由表加个title字段 2、在index包裹路由 3、在App设置title 闲聊: 看到小黄波浪线了没 就是说默认不支持title字段了 出来的提示, 所以我本来是像下面这样搞的,就是感觉有点难维护,就还是用上面的方法了 …...
postman测试导入文件
01 上传文件参数 1.选择请求方式 选择post请求方式,输入请求地址 2.填写Headers Key:Content-Type ; Value:multipart/form-data 如下图 3.填写body 选择form-data,key选择file类型后value会出现按钮࿰…...
ZigBee学习(一)
文章目录 一、ZigBee介绍二、IEEE 802.15.42.1 物理层2.2 MAC层2.3 如何实现网络和设备寻址2.4 能量管理 三、ZigBee网络拓扑结构四、ZigBee配置参数 一、ZigBee介绍 ZigBee是一种基于IEEE 802.15.4标准的高级通信协议,它被设计用于低速率、低功耗和短距离无线通信&…...
Windows 10平台Android子系统技术实现与跨平台应用实践
Windows 10平台Android子系统技术实现与跨平台应用实践 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 Windows Subsystem for Android࿰…...
解决Word中MathType功能失效的VBA与注册表修复指南
1. 遇到MathType罢工?先别急着重装Office 最近帮同事处理Word文档时,发现他的MathType菜单全灰了,公式编辑功能完全瘫痪。这种情况在科研论文写作高峰期特别要命——你正赶着投稿 deadline,突然发现公式编辑器失灵了,…...
从“单点防御”到“全局联动”:手把手教你用EDR和NDR构建企业安全闭环
从“单点防御”到“全局联动”:手把手教你用EDR和NDR构建企业安全闭环 当企业的安全团队还在疲于应对零散的端点告警和网络流量异常时,攻击者早已开始采用自动化工具进行横向移动。传统孤立的防御手段就像用多个单点摄像头监控银行金库——每个摄像头都…...
Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案
Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation [痛点分析]:文献管理中的隐…...
JekyllNet .Net 版本的Jekyll , 你博客 文档的静态生成利器 。
若君只欲一篇而尽知 JekyllNet 今可如何用,此文即其总册。 项目入口 仓库地址:https://github.com/JekyllNet/JekyllNet文档网站:https://jekyllnet.helpGitHub Pages 站点入口(仓库 Pages):https://jekyllnet.github.io/JekyllNe…...
别再折腾官方源了!用XianDian-IaaS-v2.2在CentOS7上30分钟搞定OpenStack最小化部署
30分钟极速部署OpenStack:XianDian-IaaS在CentOS7上的实战指南 OpenStack作为开源云计算平台的标杆,其强大的灵活性和模块化设计吸引了大量企业用户。但官方部署流程的复杂性往往让初学者望而却步——依赖项冲突、版本兼容性问题、繁琐的配置步骤&#x…...
ComfyUI-FramePackWrapper终极指南:3种AI视频生成模型加载方案深度对比
ComfyUI-FramePackWrapper终极指南:3种AI视频生成模型加载方案深度对比 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 在AI视频生成领域,ComfyUI-FramePackWrapper是一款革…...
THE LEATHER ARCHIVE快速体验:一键生成杂志级AI皮衣大片,小白也能当设计师
THE LEATHER ARCHIVE快速体验:一键生成杂志级AI皮衣大片,小白也能当设计师 1. 项目介绍与核心价值 想象一下,你不需要专业的设计技能,就能创造出媲美时尚杂志封面的皮衣设计作品。THE LEATHER ARCHIVE正是这样一个让创意触手可及…...
GitHub开源项目分享:SenseVoice-Small模型微调与领域适配工具链
GitHub开源项目分享:SenseVoice-Small模型微调与领域适配工具链 最近在语音识别领域,一个挺有意思的现象是,很多通用模型虽然能力很强,但一遇到专业领域的对话,比如医生讨论病例、律师分析法条,准确率就容…...
实战应用:基于快马平台开发具备origin高级分析功能的在线工具
今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——开发一个具备Origin高级分析功能的在线工具。作为一个经常需要处理实验数据的科研狗,Origin这类软件的分析功能确实强大,但每次都要安装本地软件实在麻烦。于是就想试试能不能做个在线版&am…...
