SOME/IP-SD -- 协议英文原文讲解6
前言
SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块:
1. SOME/IP协议讲解
2. SOME/IP-SD协议讲解
3. python/C++举例调试讲解
5.1.3.1 Eventgroup Entry 订阅、订阅回复、停止订阅Entry
sub/suback/subnack报文中 有显示订阅组 按组订阅的 不是具体eventID
具体eventID 在SOME/IP报文中有体现
5.1.3.1.1 Subscribe Eventgroup Entry 订阅事件组entry
[PRS_SOMEIPSD_00385]
Upstream requirements: RS_SOMEIPSD_00015
The Subscribe Eventgroup entry type shall be used to subscribe to an eventgroup.
Subscribe Eventgroup entry 用于订阅 事件组 -- 容易理解的陈述
[PRS_SOMEIPSD_00386]
Upstream requirements: RS_SOMEIPSD_00015
下面是订阅报文的entry格式。
Subscribe Eventgroup entries shall set the entry fields in the following way:
• Type shall be set to 0x06 (SubscribeEventgroup).
• Service ID shall be set to the Service ID of the service instance that includes the
eventgroup subscribed to.
• Instance ID shall be set to the Instance ID of the service instance that includes
the eventgroup subscribed to.
• Major Version shall be set to the Major Version of the service instance of the
eventgroup subscribed to.
• Eventgroup ID shall be set to the Eventgroup ID of the eventgroup subscribed to.
• TTL shall be set to the lifetime of the subscription.
– If set to 0xFFFFFF, the Subscribe Eventgroup entry shall be considered valid
until the next reboot.
– TTL shall not be set to 0x000000 since this is considered to be the Stop
Offer Service Entry.
• Reserved shall be set to 0x000 until further notice.
• Counter shall be used to differentiate between parallel subscribes to the same
eventgroup of the same service (only difference in endpoint). If not used, set to
0x0. Counter不太常用。其实通过客户端的的端点(IP+PORT)就可以区分客户端了,counter只是可以作为辅助
[PRS_SOMEIPSD_00846]
Upstream requirements: RS_SOMEIPSD_00015, RS_SOMEIPSD_00025
A SubscribeEventgroup entry reference the endpoints (IP address, port, and protocol)
where the client wishes to receive the events. A client service could subscribe to
the same Eventgroup either with a client unicast endpoint or with a client multicast
endpoint:
• If a client subscribes with a client unicast endpoint via an Endpoint Option, the
client announces its desire to receive the events as unicast events transmitted to
the given unicast endpoint.
• If a client subscribes with a client multicast endpoint via an Endpoint Option, the
client announces its desire to receive the events as multicast events transmitted
to the given multicast endpoint.
订阅entry对应的 endpoint - option 只能是单播 或 UDP组播。option中的IP-PORT是client自己的(希望server往这里发送的地址)
[PRS_SOMEIPSD_00387]
Upstream requirements: RS_SOMEIPSD_00015, RS_SOMEIPSD_00025
SubscribeEventgroup entries shall reference options according to the following rules:
• either up to two IPv4 or up to two IPv6 Endpoint Options (one for UDP, one for
TCP)
• either up to one IPv4 Multicast Option or up to one IPv6 Multicast Option (only
UDP supported)
Note:
This explicitly rules out that a single service instance is offered via IPv4 and IPv6 at the
same time.
### **1. 是否不能同时支持 IPv4 和 IPv6?**
是的,根据规范描述,**同一个服务实例不能同时通过 IPv4 和 IPv6 提供**。
#### 规范原文:
> This explicitly rules out that a single service instance is offered via IPv4 and IPv6 at the same time.
#### 解释:
- 在 `SubscribeEventgroup` 消息中,服务实例的端点选项(Endpoint Options)**只能选择 IPv4 或 IPv6**,而不能同时支持两者。
- 具体规则:
- 最多可以包含 **两个 IPv4 端点选项**(一个用于 UDP,一个用于 TCP)。
- 或者,最多可以包含 **两个 IPv6 端点选项**(一个用于 UDP,一个用于 TCP)。
#### 示例:
- **允许**:
- 两个 IPv4 端点选项(UDP 和 TCP)。
- 两个 IPv6 端点选项(UDP 和 TCP)。
- **不允许**:
- 一个 IPv4 端点选项和一个 IPv6 端点选项。
---
### **2. 是否可以同时支持 UDP 单播和 UDP 组播?**
是的,**可以同时支持 UDP 单播和 UDP 组播**。
#### 规范原文:
> either up to one IPv4 Multicast Option or up to one IPv6 Multicast Option (only UDP supported)
#### 解释:
- 在 `SubscribeEventgroup` 消息中,可以同时包含以下选项:
- **单播端点选项**(Unicast Endpoint Option):
- 用于 UDP 单播通信。
- 例如:`IPv4 Endpoint Option` 或 `IPv6 Endpoint Option`。
- **组播端点选项**(Multicast Option):
- 用于 UDP 组播通信。
- 例如:`IPv4 Multicast Option` 或 `IPv6 Multicast Option`。
- 需要注意的是:
- 组播选项 **仅支持 UDP**,不支持 TCP。
- 单播和组播选项的 IP 版本必须一致(即 IPv4 单播 + IPv4 组播,或 IPv6 单播 + IPv6 组播)。
#### 示例:
- **允许**:
- 一个 IPv4 单播端点选项(UDP) + 一个 IPv4 组播选项(UDP)。
- 一个 IPv6 单播端点选项(UDP) + 一个 IPv6 组播选项(UDP)。
- **不允许**:
- 一个 IPv4 单播端点选项(UDP) + 一个 IPv6 组播选项(UDP)。
---
### **3. 总结**
- **IPv4 和 IPv6**:
- 同一个服务实例 **不能同时支持 IPv4 和 IPv6**。
- 必须选择其中一种 IP 版本(IPv4 或 IPv6)。
- **UDP 单播和 UDP 组播**:
- 可以同时支持 **UDP 单播和 UDP 组播**。
- 单播和组播的 IP 版本必须一致(IPv4 或 IPv6)。
---
### **示例配置**
#### 示例 1:IPv4 单播 + IPv4 组播
- **单播**:
- `IPv4 Endpoint Option`(UDP):`192.168.1.1:5000`
- **组播**:
- `IPv4 Multicast Option`(UDP):`239.255.0.1:5001`
#### 示例 2:IPv6 单播 + IPv6 组播
- **单播**:
- `IPv6 Endpoint Option`(UDP):`2001:db8::1:5000`
- **组播**:
- `IPv6 Multicast Option`(UDP):`ff02::1:5001`
---
### **注意事项**
1. **IP 版本一致性**:
- 单播和组播选项的 IP 版本必须一致。
- 例如,不能混合使用 IPv4 单播和 IPv6 组播。
2. **TCP 不支持组播**:
- 组播选项 **仅支持 UDP**,TCP 不支持组播。
3. **端点选项数量限制**:
- 最多两个端点选项(单播 + 组播)。
- 例如,不能同时配置两个单播端点选项和一个组播端点选项。
---
[PRS_SOMEIPSD_00828]
Upstream requirements: RS_SOMEIPSD_00015, RS_SOMEIPSD_00025
When receiving a SubscribeEventgroup or StopSubscribeEventgroup the Service ID,
Instance ID, Eventgroup ID, and Major Version shall match exactly to the configured
values to identify an Eventgroup of a Service Instance.
当server收到 sub/stop sub报文时要 严格核对 Service ID,
Instance ID, Eventgroup ID, and Major Version 是否匹配
[PRS_SOMEIPSD_00810]
Upstream requirements: RS_SOMEIPSD_00015, RS_SOMEIPSD_00025
If the server receives a Subscribe Eventgroup entry without a UDP Endpoint Option
(see [PRS_SOMEIPSD_00387]) and the MULTICAST_THRESHOLD for the Eventgroup is not configured with value 1 then SubscribeEventGroupNack shall be sent
back to the client.
如果server 没有收到 udp单播的订阅(但是订阅的组又只支持UDP单播-- 客户矩阵表定义 并且MULTICAST_THRESHOLD!=1)则需要回复 sub nack报文
5.1.3.1.2 Stop Subscribe Eventgroup Entry 停止订阅事件组 entry
[PRS_SOMEIPSD_00388]
Upstream requirements: RS_SOMEIPSD_00017
The Stop Subscribe Eventgroup entry type shall be used to stop subscribing to eventgroups.
stop sub Eventgroup entry 类型报文用来 停止订阅事件组 -- 简单的陈述
[PRS_SOMEIPSD_00389]
Upstream requirements: RS_SOMEIPSD_00017
Stop Subscribe Eventgroup entries shall set the entry fields exactly like the Subscribe
Eventgroup entry they are stopping, except:
• TTL shall be set to 0x000000.
stop sub的报文 就是把 sub报文中的TTL修改为0x000000
[PRS_SOMEIPSD_00574]
Upstream requirements: RS_SOMEIPSD_00017
A Stop Subscribe Eventgroup Entry shall reference the same options the Subscribe
Eventgroup Entry referenced. This includes but is not limited to Endpoint and Configuration options.
停止订阅和订阅报文不同的另一点 就是 不用携带 options 配置项
5.1.3.1.3 Subscribe Eventgroup Acknowledgement (Subscribe Eventgroup
Ack) Entry 订阅事件组 回复报文
[PRS_SOMEIPSD_00390]
Upstream requirements: RS_SOMEIPSD_00015
The Subscribe Eventgroup Acknowledgment entry type shall be used to indicate that
Subscribe Eventgroup entry was accepted.
回复报文 用来说明 接受client的订阅
[PRS_SOMEIPSD_00391]
Upstream requirements: RS_SOMEIPSD_00015
Subscribe Eventgroup Acknowledgment entries shall set the entry fields in the following way:
• Type shall be set to 0x07 (SubscribeEventgroupAck). -- 固定值
• Service ID, Instance ID, Major Version, Eventgroup ID, TTL, Reserved and
Counter shall be the same value as in the Subscribe Eventgroup that is being
answered.
Service ID, Instance ID, Major Version, Eventgroup ID, TTL, Reserved and
Counter 这些字段的值和 订阅包的保持一致 (entry)
[PRS_SOMEIPSD_00392]
Upstream requirements: RS_SOMEIPSD_00015
Subscribe Eventgroup Ack entries referencing events and notification events that are
transported via multicast shall reference an IPv4 Multicast Option and/or and IPv6
Multicast Option. The Multicast Options state to which Multicast address and port the
events and notification events will be sent to.
options只能携带 IPv4 或 IPv6 组播地址 和 port
[PRS_SOMEIPSD_00829]
Upstream requirements: RS_SOMEIPSD_00015
When receiving a SubscribeEventgroupAck or SubscribeEventgroupNack the Service
ID, Instance ID, Eventgroup ID, and Major Version shall match exactly to the corresponding SubscribeEventgroup Entry to identify an Eventgroup of a Service Instance
收到订阅ack和 订阅失败ack -- 要检查Service ID, Instance ID, Eventgroup ID, and Major Version 等字段严格匹配
5.1.3.1.4 Subscribe Eventgroup Negative Acknowledgement (Subscribe Eventgroup Nack) Entry
[PRS_SOMEIPSD_00393]
Upstream requirements: RS_SOMEIPSD_00015
The Subscribe Eventgroup Negative Acknowledgment entry type shall be used to
indicate that Subscribe Eventgroup entry was NOT accepted.
拒绝订阅回复 -- 表示不接收client的订阅
[PRS_SOMEIPSD_00394]
Upstream requirements: RS_SOMEIPSD_00015
Subscribe Eventgroup Negative Acknowledgment entries shall set the entry fields in
the following way:
• Type shall be set to 0x07 (SubscribeEventgroupAck). -- 固定值
• Service ID, Instance ID, Major Version, Eventgroup ID, Counter, and Reserved
shall be the same value as in the Subscribe that is being answered.
Service ID, Instance ID, Major Version, Eventgroup ID, Counter, and Reserved 字段和订阅包保持一致。
• The TTL shall be set to 0x000000. -- 固定值
[PRS_SOMEIPSD_00566]
Upstream requirements: RS_SOMEIPSD_00015
Reasons to not accept a Subscribe Eventgroup include (but are not limited to):
拒绝订阅的情况可能包含这些 -- 但不仅限于这些
• Combination of Service ID, Instance ID, Eventgroup ID, and Major Version is unknown
• Required TCP-connection was not opened by client
• Problems with the references options occurred
• Resource problems at the Server
• Security association not yet established
[PRS_SOMEIPSD_00527]
Upstream requirements: RS_SOMEIPSD_00015
When the client receives a SubscribeEventgroupNack as answer on a SubscribeEventgroup for which a TCP connection is required, the client shall check the
TCP connection and shall restart the TCP connection if needed.
当client收到 tcp 事件组 订阅失败回复时 要检查自己的TCP是否建链
Note: [PRS_SOMEIPSD_00527] involves checking the state of the network security
protocol
Rational:
The server might have lost the TCP connection and the client has not.
Checking the TCP connection might include the following:
• Checking whether data is received for e.g. other Eventgroups.
• Sending out a Magic Cookie message and waiting for the TCP ACK.
• Reestablishing the TCP connection.
[PRS_SOMEIPSD_00842] Overview of currently supported Entry Types
Upstream requirements: RS_SOMEIPSD_00015
**TCP 连接状态检查** 和 **Entry Types** 的详细解析:
---
### **TCP 连接状态检查**
#### **背景**
在 SOME/IP 协议中,TCP 连接的可靠性非常重要。如果服务器和客户端之间的 TCP 连接出现问题(例如服务器丢失连接,但客户端未感知),可能会导致通信中断或数据丢失。因此,规范 **[PRS_SOMEIPSD_00527]** 提出了检查 TCP 连接状态的机制。
#### **检查方法**
规范中提到了以下几种检查 TCP 连接状态的方法:
1. **检查是否接收到其他事件组的数据**:
- 如果客户端仍然可以接收到其他事件组(Eventgroup)的数据,说明 TCP 连接可能仍然有效。
- 如果没有任何数据接收,可能表明 TCP 连接已断开。
2. **发送 Magic Cookie 消息并等待 TCP ACK**:
- 客户端可以发送一个特殊的 **Magic Cookie 消息** 到服务器,并等待服务器的 TCP ACK 响应。
- 如果收到 ACK,说明 TCP 连接仍然有效。
- 如果未收到 ACK,说明 TCP 连接可能已断开。
3. **重新建立 TCP 连接**:
- 如果检测到 TCP 连接已断开,客户端应尝试重新建立 TCP 连接。
- 重新建立连接的过程包括重新发送 `SubscribeEventgroup` 消息等。
#### **Magic Cookie 消息**
- **作用**:用于检测 TCP 连接是否仍然有效。
- **实现**:
- 客户端发送一个特殊的消息(Magic Cookie)到服务器。
- 服务器收到后,必须回复一个 TCP ACK。
- 如果客户端未收到 ACK,可以认为 TCP 连接已断开。
#### **示例流程**
1. 客户端检测到长时间未收到服务器的数据。
2. 客户端发送 Magic Cookie 消息到服务器。
3. 如果收到服务器的 TCP ACK,继续维持连接。
4. 如果未收到 TCP ACK,客户端尝试重新建立 TCP 连接。
相关文章:

SOME/IP-SD -- 协议英文原文讲解6
前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.3.1 E…...
【数据处理】COCO 数据集掩码 Run-Length Encoding (RLE) 编码转二进制掩码
输入:结果.json 输出:mask.jpg json内容示例如下: {"labels":[ # class_id 1,2,3,...],"scores":[ # 置信度0.2,0.7,0.3,...],"bboxes":[[1244.0,161.0,1335.0,178.0],[1243.0,161.0,1336.0,178.0],[1242.0,1…...
Java中的缓存技术:Guava Cache vs Caffeine vs Redis
在Java中,缓存技术是提升应用性能的重要手段。常见的缓存技术包括Guava Cache、Caffeine和Redis。它们各有优缺点,适用于不同的场景。以下是对它们的详细对比: 1. Guava Cache 类型: 本地缓存 特点: 基于内存的缓存,适用于单机应…...

Day8 蓝桥杯acw讲解
首先先给大家看一道这个题, 我真的是太喜欢y总了,如果大家也是最近在准备蓝桥杯或者计算机相关的比赛,但是得加一个前提就是必须最好基础真的很好,要不然其实买了课,也没啥太大的用处,其实就可以以我本人举…...
《Operating System Concepts》阅读笔记:p147-p158
《Operating System Concepts》学习第 15 天,p147-p158 总结,总计 12 页。 一、技术总结 1.socket (1)定义 A socket is defined as an endpoint for communication(socket 是用于通信的端点,或者说socket 是通信端点的抽象表示。). A s…...

JSON Schema 入门指南:如何定义和验证 JSON 数据结构
文章目录 一、引言二、什么是 JSON Schema?三、JSON Schema 的基本结构3.1 基本关键字3.2 对象属性3.3 数组元素3.4 字符串约束3.5 数值约束 四、示例:定义一个简单的 JSON Schema五、使用 JSON Schema 进行验证六、实战效果6.1 如何使用 七、总结 一、引…...

java后端开发day20--面向对象进阶(一)--static继承
(以下内容全部来自上述课程) 1.static–静态–共享 static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。 1.静态变量 被static修饰的成员变量,叫做静态变量。 特点: 被该类…...

FastJSON 默认行为:JSON.toJSONString 忽略 null 字段
完整的 FakeRegistrationController 代码,这让我可以全面分析后端逻辑,特别是为什么空的字段(如 compareDate)不返回给前端。我将详细分析代码的每个接口,尤其是与 list 请求和字段返回相关的部分,并解释原…...

数据结构:基数排序(c++实现)
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 基数排序的定义和基本原理基本原理具体步骤 基数排序的优缺点:代码实现总结 基数排序的定义和基本原理 基数排序(Radix Sort)是一…...
DOM 事件 HTML 标签属性速查手册
以下是一份 DOM 事件 & HTML 标签属性速查手册,涵盖常用场景和示例,助你快速查阅和使用: 一、DOM 事件速查表 1. 鼠标事件 事件名触发时机适用元素示例代码click元素被点击任意可见元素button.addEventListener(click, () > { ... …...

PhotoShop学习01
了解Photoshop 这里省略了Photoshop的软件安装,请自行查找资源下载。 1.打开图片 下图为启动photoshop后出现的界面,我们可以通过创建新文件或打开已有文件来启用photoshop的工作界面。 可以通过左边的按钮进行新文件的创建或打开已有文件。 也可以点…...
mongodb【实用教程】
MongoDB 是一个开源的文档型数据库管理系统 下载安装 Windows 系统 https://blog.csdn.net/weixin_41192489/article/details/126777309 GUI工具 【推荐】MongoDB Compass https://www.mongodb.com/zh-cn/docs/compass/current/ Robo 3T https://blog.csdn.net/weixin_4119248…...
C语言机试编程题
编写版本:vc2022 1.求最大/小值 #include<stdio.h> int main(){int a[50],n;int max, min;printf("请输入您要输入几个数");scanf_s("%d", &n);printf("请输入您要比较的%d个数\n",n);for (int i 0; i<n; i) {scanf_…...

threeJs+vue 轻松切换几何体贴图
嗨,我是小路。今天主要和大家分享的主题是“threeJsvue 轻松切换几何体贴图”。 想象一下,手头上正好有个在线3D家具商店,用户不仅可以看到产品的静态图片,还能实时更换沙发的颜色或材质,获得真实的购物体验。…...

Android ObjectBox数据库使用与集成指南
ObjectBox其核心特点ObjectBox与 SQLite 和 Realm 的对比Android集成ObjectBox创建ObjectBox实体对象创建ObjectBox操作管理类OBManager在Application初始化ObjectBox插入或更新数据查询数据统计数据分页数据查询删除数据总结今天分享一套Android另一个数据库ObjectBox。Object…...

【HarmonyOS Next】地图使用详解(一)
背景 这系列文章主要讲解鸿蒙地图的使用,当前可以免费使用,并提供了丰富的SDK给开发者去自定义控件开发。目前可以实现个性化显示地图、位置搜索和路径规划等功能,轻松完成地图构建工作。需要注意的是,现在测试只能使用实体手机去…...

seacmsv9注入管理员账号密码+orderby+limi
1:mysql默认存储引擎innoDB携带的表 1,mysql.innodb_table_stats 2,mysql.innodb_index_stats SELECT table_name FROM mysql.innodb_table_stats WHERE database_name DATABASE(); 2: 关键字做处理 HEX编码:0x696E666F726D6174696F6E5F7…...
C#与AI的交互(以DeepSeek为例)
C#与ai的交互 与AI的交互使用的Http请求的方式,通过发送请求,服务器响应ai生成的文本 下面是完整的代码,我这里使用的是Ollama本地部署的deepseek,在联网调用api时,则url会有不同 public class OllamaRequester {[Se…...

面试八股文--数据库基础知识总结(2) MySQL
本文介绍关于MySQL的相关面试知识 一、关系型数据库 1、定义 关系型数据库(Relational Database)是一种基于关系模型的数据库管理系统(DBMS),它将数据存储在表格(表)中,并通过表格…...

Failed to start The PHP FastCGI Process Manager.
报错如下: Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details. 2月 25 21:49:00 nginx systemd[1]: Starting The PHP FastC…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...