基于规则的自然语言处理
基于规则的自然语言处理
- 规则方法
- 形态还原(针对英语、德语、法语等)
- 中文分词
- 切分歧义
- 分词方法
- 歧义字段消歧方法
- 分词带来的问题
- 词性标注
- 命名实体分类
- 机器翻译
- 规则方法的问题
规则方法
以规则形式表示语言知识,强调人对语言知识的理性整理(知识工程——词典-主谓宾规则)
形态还原(针对英语、德语、法语等)
构词特点:
- 曲折变化:词尾和词形变化,词性不变。如study, studied, studied, studying
- 派生变化:加前缀和后缀,词性发生变化。如friend, friendly, friendship,…
- 复合变化:多个单词以某种方式组合成一个词。
还原时分两种情况,一种是变化有规律的通用规则,一种是变化无规律的个性规则。如went → \rightarrow → go就是典型的不规则动词还原举例。
中文分词
分词是指根据某个分词规范,把一个“字”串划分成“词”串。一个词可能有多个语素,这会在分词时带来困难。
切分歧义
- 交集型歧义:ABC切分成AB/C或A/BC
- 组合型歧义:AB切分成AB或A/B
- 混合型歧义:交集型歧义和组合型歧义嵌套和交叉而成(既有交集型歧义又有组合型歧义)
伪歧义与真歧义
伪歧义字段指在任何情况下只有一种切分,根据歧义字段本身就能消歧。
真歧义字段指在不同的情况下有多种切分,要根据歧义字段的上下文来消歧。
分词方法
正向最大匹配(FMM)或逆向最大匹配(RMM):从左至右(FMM)或从右至左(RMM),取最长的词
双向最大匹配:分别采用FMM和RMM进行分词,能发现交集型歧义(“幼儿园/地/节目”和“幼儿/园地/节目”),如果结果一致,则认为成功;否则,采用消歧规则进行消歧。
正向最大、逆向最小匹配:正向采用FMM,逆向采用最短词,能发现组合型歧义(“他/骑/在/马上”和“他/骑/在/马/上”)。
逐词遍历匹配:在全句中取最长的词,去掉之,对剩下字符串重复该过程。
设立切分标志:收集词首字和词尾字,先把句子分成较小单位,再用某些方法切分。
全切分:可能的切分,选择最可能的切分(用统计方式,概率化各种切分)
歧义字段消歧方法
利用歧义字串、前驱字串和后继字串的句法、语义和语用信息。
分词带来的问题
组成词的字的信息丢失,错误的分词影响后续的工作,不同分词规范的分词造成分词结果不一致(判断哪个对需要人工check)
词性标注
为句子中的词标上预定义类别集合中的类(词性),目标是为后续的句法/语义分析提供必要的信息。在词性标注中,一个很大的挑战是兼类词,即一个词具有两个或者两个以上的词性,英文的Brown语料库中,10.4%的词是兼类词。
命名实体分类
命名实体分类可以分为三大类也可以分为七大类:
- 3大类– 实体类、时间类、数字类
- 7大类– 人名、地名、机构名、时间、日期、货币量、百分数
基于规则的命名实体识别,由专家总结实体词表,利用词表进行匹配,速度快但是覆盖率有限,且需要人力总结,适合垂直领域,如医疗、金融、法律等。
机器翻译
机器翻译(Machine Translation)是一个将源语言的句子x翻译成目标语言句子y(译文)的任务。
规则翻译遵循以下几个步骤:
- 分析:将源语言句子解析成一种深层的结构表示,如前文所说的分词就是这一部分的内容
- 转换:将源语言句子的深层结构表示转换成目标语言的深层结构表示
- 生成:根据目标语言的深层结构表示生成对应的目标语言句子
在词汇层次,根据词汇转换规则进行转换,句法分析时则递归地利用一组“树-树”的转换规则,把源语言的句法树转换成目标语言的句法树,从目标语言的句法树生成目标语言句子。
基于中间语言(INTERLINGUA)的翻译指对源语言进行分析,得到一个独立于源语言和目标语言的、基于概念的中间语言表示,然后从这个中间语言表示生成目标语言。对于n种语言之间的翻译(多语翻译)– 转换翻译需要n(n-1)个模块,而中间语言翻译只需要2n个模块,但是中间语言翻译加大了语言分析的难度(大量的消歧),因此需要考虑对机器翻译来说,这样的分析是否必要。
- 优点:在多语翻译时可以降低模块的数量
- 缺点:质量得不到保证
规则方法的问题
- 规则质量依赖于语言学家的知识和经验,获取成本高
- 规则之间容易发生冲突
- 大规模规则系统维护难度大
相关文章:

基于规则的自然语言处理
基于规则的自然语言处理 规则方法形态还原(针对英语、德语、法语等)中文分词切分歧义分词方法歧义字段消歧方法分词带来的问题 词性标注命名实体分类机器翻译规则方法的问题 规则方法 以规则形式表示语言知识,强调人对语言知识的理性整理&am…...

使用MounRiver Studio Ⅱ软件写一个CH592F芯片的ADC采集程序,碰到的问题
MounRiver Studio Ⅱ 默认是不开启浮点计算的,所以有些浮点功能不能用,碰到问题是 while (1) {DelayMs (100);tmp Read_Temperature (0);sprintf (tempBuffer, "temp:%.2f\r\n", tmp); // 格式化温度值到字符串。使用%f要开启相应的…...

简约商务年终工作总结报告PPT模版分享
简约精致扁平化商务通用动画PPT模版,简约大气素雅商务PPT模版,商务PPT模版,商业计划书PPT模版,IOS风商务通用PPT模版,公司介绍企业宣传PPT模版,创业融资PPT模版,创意低多边形PPT模版,…...

深度学习学习率优化方法——pytorch中各类warm up策略
warm-up具体原理以及为什么这么做在之前的博客有介绍,这里直接介绍如何直接使用pytorch中的warm-up策略,在pytorch中对于warm-up所有支持的方法都有描述,可以直接阅读1。 深度学习中各类学习率优化方法(AdaGrad/RMSprop/Adam/Warm-UP)原理及其…...

分类数据集 - 场景分类数据集下载
数据集介绍:自然场景分类数据集,真实场景高质量图片数据;适用实际项目应用:自然场景下场景分类项目,以及作为通用场景分类数据集场景数据的补充;数据集类别:buildings、forest、glacier、mounta…...

leetcode.多数元素
169. 多数元素 - 力扣(LeetCode) import java.util.HashMap;public class LeetCode169 {public int majorityElement(int[] nums) {int count nums.length;int res count/2;Scanner scanner new Scanner(System.in);HashMap<Integer,Integer> …...

Server - 使用 Docker 配置 PyTorch 研发环境
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/148421901 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 建议使…...

2025年渗透测试面试题总结-腾讯[实习]安全研究员(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]安全研究员 1. 自我介绍 2. SQL二次注入原理 3. 二次注入修复方案 4. SQL注入绕WAFÿ…...
Vue:Form正则校验
目录 1. 只能输入正整数或正小数(保留三位小数) 1. 只能输入正整数或正小数(保留三位小数) cc: [{required: true, message: "钻杆长度不能为空", trigger: "blur" },{pattern: /^\d(\.\d{1,3})?$/, message: 只能输入正整数或正小数(保留三位小数), tri…...
如何处理React中表单的双向数据绑定?
在前端开发中,双向数据绑定(Two-way Data Binding)是指视图(View)与数据模型(Model)之间保持同步:当模型发生变化时,视图会自动更新;当视图(用户输…...
时间序列预测的机器学习方法:从基础到实战
时间序列预测是机器学习中一个重要且实用的领域,广泛应用于金融、气象、销售预测、资源规划等多个行业。本文将全面介绍时间序列预测的基本概念、常用方法,并通过Python代码示例展示如何构建和评估时间序列预测模型。 1. 时间序列预测概述 时间序列是按…...

01-VMware16虚拟机详细安装
官网地址:https://www.vmware.com/cn.html 1.1 打开下载好的 .exe 文件, 双击安装。 1.2 点击下一步 1.3 先勾选我接受许可协议中的条款,然后点击下一步 1.4 自定义安装路径,注意这里的文件路径尽量不要包含中文,完成…...

sql列中数据通过逗号分割的集合,按需求剔除部分值
前置 不会REGEXP 方法的需要在这里学习一下下 记sql字段逗号分隔,通过list查询 功能点 现有一个表格中一列存储的是标签的集合,通过逗号分割 入下: 其中tag_ids是逗号分割的标签,现在需要删除标签组中的一些标签,因…...

下一代设备健康管理解决方案:基于多源异构数据融合的智能运维架构
导语: 在工业4.0深度演进的关键节点,传统设备管理面临数据孤岛、误诊率高、运维滞后三大致命瓶颈。本文解析基于边缘智能与数字孪生的新一代解决方案架构,并实测验证中讯烛龙PHM-X系统如何通过多模态感知→智能诊断→自主决策闭环,…...
unipp---HarmonyOS 应用开发实战
HarmonyOS 应用开发实战指南 1. 开篇:为什么选择 HarmonyOS? 最近在开发鸿蒙应用时,发现很多开发者都在问:为什么要选择 HarmonyOS?这里分享一下我的看法: 生态优势 华为手机用户基数大,市场潜…...
Go 语言中switch case条件分支语句
1. 基本语法 package main import "fmt" func main() {var extname ".css"switch extname {case ".html":fmt.Println("text/html")case ".css":fmt.Println("text/css") // text/csscase ".js":fmt.…...
ai流式文字返回前端和php的处理办法
PHP后端 php端主要是用到ob_flush和flush,头改为流式。 基本代码 代码如下: <?php header(Content-Type:text/event-stream); header(Cache-Control:no-cache); header(Connection:keep-alive);function streamPostRequest($url,$data){$chcurl_…...

深入理解JavaScript设计模式之闭包与高阶函数
目录 前言小序一场失败面试面试后的觉醒 闭包变量作用域:谁的地盘听谁的变量的生命周期:该走了,不该走的还在闭包的更多作用:不只是谈恋爱,还能干活!1、封装私有变量:你的变量我来守护2、延长变…...
【Unity】R3 CSharp 响应式编程 - 使用篇(二)
一、通用的事件监听用法 using System;using R3;using UnityEngine;namespace Aladdin.Standard.Observable.Common{public class CommonObservable : MonoBehaviour{// 默认会调用1次public SerializableReactiveProperty<int> serializableReactiveProperty;…...

springboot启动mapper找不到方法对应的xml
数据源配置 目录结构 idea中mapper.java 可以找到对应的mapper.xml文件 启动却找不到 因为mapper.db1会被识别为文件名 而非目录结构 调整为这种...

MQTT协议:物联网时代的通信基石
MQTT协议:物联网时代的通信基石 在当今快速发展的物联网(IoT)时代,设备之间的通信变得尤为重要。MQTT(Message Queuing Telemetry Transport)协议作为一种轻量级的消息传输协议,正逐渐成为物联…...
vite ts 配置使用@ 允许js
1.vite.config.ts 配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import { fileURLToPath, URL } from node:url import setup_extend from vite-plugin-vue-setup-extend// https://vite.dev/config/ export default defineConfig({plugins: …...

Electron通信流程
前言 今天讲Electron框架的通信流程,首先我们需要知道为什么需要通信。这得益于Electron的多进程模型,它主要模仿chrome的多进程模型如下图: 作为应用开发者,我们将控制两种类型的进程:主进程和渲染器进程 。 …...

华为云Flexus+DeepSeek征文|华为云Flexus服务器dify平台通过自然语言转sql并执行实现电商数据分析
目录 前言 1 华为云Flexus服务器部署Dify平台 1.1 华为云Flexus服务器一键部署Dify平台 1.2 设置账号登录Dify,进入平台 2 构建自然语言转SQL并执行的应用 2.1 创建应用并启动工作流设计 2.2 应用框架设计 2.3 自然语言转SQL模块详解 2.4 代码执行模块实现…...

IDEA中微服务指定端口启动
在使用IDEA开发SpringBoot微服务时,经常需要开启多个服务实例以测试负载均衡,以下几种方法开启不同端口。 直接在配置文件中指定 # application.propertiesserver.port8001指定VM参数 点击Modify options,选择Add VM options,值…...
BERT, GPT, Transformer之间的关系
1. Transformer 是什么?简单介绍 1.1 通俗理解 想象你是一个翻译员,要把一句话从中文翻译成英文。你需要同时看句子里的每个词,理解它们之间的关系。Transformer就像一个超级翻译助手,它用“自注意力机制”(Attentio…...

Spring Cloud Alibaba Seata安装+微服务实战
目录 介绍核心功能三层核心架构安装微服务实战创建三个业务数据库编写库存和账户两个Feign接口订单微服务 seata-order-service9701库存微服务 seata-store-service9702账户微服务 seata-account-service9703测试结果 总结 介绍 Spring Cloud Alibaba Seata 是一款开源的分布式…...

FMC STM32H7 SDRAM
如何无痛使用片外SDRAM? stm32 已经成功初始化了 STM32H7 上的外部 SDRAM(32MB) 如何在开发中无痛使用SDRAM 使它像普通 RAM 一样“自然地”使用? [todo] 重要 MMT(Memory Management Tool) of STM32CubeMx The Memory Management Tool (MMT) disp…...

部署DNS从服务器
部署DNS从服务器的目的 DNS域名解析服务中,从服务器可以从主服务器上获得指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。 注意…...
Ubuntu 系统.sh脚本一键部署内网Java服务(组件使用docker镜像,宕机自启动)
#!/bin/bash# 更新系统并安装必要的依赖 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common# 安装 Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository …...