关于测试翻译准确率的相关方法

本文提到的翻译准确率测试指标是BLEU,以及使用Python库-fuzzywuzzy来计算相似度

一、基于BLEU值评估
1.只评估一段话,代码如下

from nltk.translate.bleu_score import sentence_bleu, SmoothingFunction# 机器翻译结果
machine_translation = "How are you"
# 参考翻译列表
human_translations = ["How have you been lately?"]# 使用SmoothingFunction.method1
chencherry = SmoothingFunction()# 计算BLEU分数
bleu_score = sentence_bleu(human_translations, machine_translation, smoothing_function=chencherry.method1)print(f"BLEU score: {bleu_score:.4f}")

评估结果如下,BLEU分数为0.17,换算为百分比后为17%
在这里插入图片描述

2.需要评估多段内容,将待评估的文字统一放入excel,代码如下

import pandas as pd
from nltk.translate.bleu_score import sentence_bleu# 读取Excel文件
file_path = r"C:\Users\Anita\Desktop\XXX\EN.xlsx"  # excel文件路径
df = pd.read_excel(file_path, engine='openpyxl')# 对比
references = df['机器翻译结果'].tolist()
candidates = df['参考语料'].tolist()# 初始化BLEU分数的列表
bleu_scores = []# 遍历每一对参考文本和候选文本,计算BLEU值
for ref, cand in zip(references, candidates):if isinstance(ref, str) and isinstance(cand, str):# 空格分词ref_words = ref.split()cand_words = cand.split()# 计算bleu值score = sentence_bleu([ref_words], cand_words)bleu_scores.append(score)else:print("参考或候选文本不是字符串类型")# 打印BLEU值
for i, score in enumerate(bleu_scores):print(f"第{i + 1}行的BLEU值为: {score:.4f}")# 计算平均BLEU值
average_bleu = sum(bleu_scores) / len(bleu_scores)
print(f"平均BLEU值为: {average_bleu:.4f}")

评估结果如下
在这里插入图片描述
ps:如果是其他语言,比如中文,建议用其他工具进行分词,如Jieba

二、基于fuzzywuzzy评估

from fuzzywuzzy import fuzz
import pandas as pd# 读取Excel文件
file_path = r"C:\Users\Anita\Desktop\AIStation\CN-CN.xlsx"  # Excel文件路径
df = pd.read_excel(file_path, engine='openpyxl')# 初始化一个列表来存储准确率
accuracies = []# 遍历DataFrame的前几行(根据需要调整行数)
for i in range(12):  # 处理前x行value_a = df.iloc[i, 1]  # 获取B列的值value_b = df.iloc[i, 2]  # 获取C列的值# 使用fuzzywuzzy计算相似度similarity_score = fuzz.ratio(str(value_a), str(value_b))  # 将值转换为字符串# 计算准确率(相似度直接作为准确率)accuracy = similarity_score / 100# 将准确率添加到列表中accuracies.append(accuracy)# 打印当前行的准确率# print(f"A{i + 2}和B{i + 2}的对比相似度为: {similarity_score}")print(f"B{i + 2}和C{i + 2}的对比准确率为: {accuracy:.2%}")

评估结果如下
在这里插入图片描述

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

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

相关文章

【动手学深度学习】8.3 语言模型(个人向笔记)

下面是语言模型的简介 1. 学习语言模型 使用计数来建模 N元语法:这里的元可以理解为我们之前的时间变量。对于 N 元语法,我们可以把所有长度为 N 的子序列存下来。其中 1 元语法用的很少。这里其实就是算概率的时候我们不往前看所有的概率,…

ACL和NAT

一、ACL 1.概述 访问控制列表Access Control List是由一系列permit或deny语句组成的、有序规则的列表是一个匹配工具,对报文进行匹配和区分 2.ACL应用 匹配流量在traffic-filter中被调用在NAT(Natwork Address Translation)中被调用在路由策略中被调用在防火墙的…

Linux系统:本机(物理主机)访问不了虚拟机中的apache服务问题的解决方案

学习目标: 提示:本文主要讲述-本机(物理主机)访问不了虚拟机中的apache服务情况下的解决方案 Linux系统:Ubuntu 23.04; 文中提到的“本机”:代表,宿主机,物理主机; 首先&#xff0c…

OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 允许用户在给定的图像上选择多个 ROI。 该函数创建一个窗口,并允许用户使用鼠标来选择多个 ROI。控制方式:使用空格键或…

【Unity新闻】Unity 6 正式版发布

Unity CEO Matt Bromberg 在今天自豪地宣布,Unity 6 正式发布!作为迄今为止最强大和稳定的版本,Unity 6 为游戏和应用开发者提供了大量的新功能和工具,帮助他们加速开发并提升性能。 本次正式版是6.0000.0.23f1(LTS&a…

Django学习(三)

Django的设计模式及模板层 传统的MVC(例如java) Django的MTV 模板层: 模板加载: 代码: views.py def test_html(request):#方案一# from django.template import loader# 1. 使用loader加载模板# t loader.get_…

WIFI实现透传+接线图

单片机通过TX接WIFI模块的RX将设置的AT代码写入WIFI模块(连接WIFI调为设备模式(有设备,路由,双模等模式)) WIFI模块将响应信号通过TX通过CH340发给PC的RX 通过STC-ISP或安信可串口调试助手查看响应信息 …

Parallels Desktop20最新版本虚拟机 让双系统无缝切换成为现实!

Parallels Desktop 20最新版本虚拟机:让双系统无缝切换成为现实! 嘿,各位小伙伴们~🎉 如果你是像我一样,既爱 Windows 又放不下 macOS 的纠结星人,那今天这篇分享你可要仔细看啰!&am…

Linux学习笔记9 文件系统的基础

一、查看文件组织结构 Linux中一切都是文件。 Linux和Win的文件系统不是一个结构,Linux存在的根目录是所有目录的起点。 所有的存储空间和设备共享一个根目录,不同的磁盘块和分区挂载在其下,成为某个子目录的子目录,甚至设备也挂…

Windows系统部署redis自启动服务【亲测可用】

文章目录 引言I redis以本地服务运行(Windows service)使用MSI安装包配置文件,配置端口和密码II redis服务以终端命令启动缺点运行redis-server并指定端口和密码III 知识扩展确认redis-server可用性Installing the Service引言 服务器是Windows系统,所以使用Windows不是re…

图像识别解决方案

图像识别解决方案是一种基于人工智能技术的图像处理和识别方法,能够实现对图像内容的自动分析和理解。以下是朗观视觉小编对图像识别解决方案的详细阐述: 一、技术原理 图像识别解决方案的核心原理是机器学习算法和深度学习网络。通过收集大量的图像数据…

【数据丢失不再怕】新手体验四款恢复数据神器

作为一个电脑新手,我最近遇到了一个让人头疼的问题——不小心删除了一些重要的文件!那种感觉,就像是心爱的玩具突然找不到了,整个人都慌了。但是,别担心,我找到了四款数据恢复工具,它们就像我的…

Unity接入人工智能

在Unity接入人工智能中,本篇实现了接入百度智能云ai进行npc智能对话,通过http方式,并非插件,适合于所有支持Http链接的Unity版本。对于Chartgpt可以参考本篇内容的实现过程。 1-4节讲解测试,第5节讲解Unity中的实现&a…

15分钟学Go 第5天:数据类型

第5天:数据类型 在Go语言中,数据类型是构成程序的重要基础,它们定义了可以在程序中使用的数据特征。了解不同的数据类型及其用途将帮助我们更有效地编写Go代码。在本章节中,我们将详细探讨Go语言的基本数据类型。 1. 数据类型的…

jmeter发送post请求

在jmeter中,有两种常用的请求方式,get和post.它们两者的区别在于get请求的参数一般是放在路径中,可以使用用户自定义变量和函数助手等方式进行参数化,而post请求的参数不能随url发送,而是作为请求体提交给服务器。而在…

Linux 手撕线程池

前言 线程池 是 池化技术 中很典型的一个,它旨在高效的管理和复用线程资源!在现在的计算机体系中,线程是执行任务(调度)的基本单位。然而,频繁的创建和销毁线程也会带来较大的开销,包括系统资源…

Unity之XR Interaction Toolkit 射线拖拽3DUI

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、想实现的功能二、实现原理1.UI挂在XRGrabInteractable、刚体、BoxCollder2.修改刚体属性3.加BoxCollder 总结 前言 VR项目里正常情况有放置两种3DUI的方式…

音视频基础知识分享

音视频基础知识分享 RKMedia的各个组件及其交互 首先上图: 考虑到公司业务主要是相机,所以,主要去关注图像数据流,对于音频数据流直接忽略。 图像数据流向: Camera Sensor将光信号转换成电信号(Raw数据&…

指针——函数指针数组

(一)前文回顾 1、前篇代码分析 void(*signal(int , void(*)(int)))(int) ; 那么这串代码究竟是什么呢? 别慌,让我们来一步一步拆解,首先我们通过之前的学习,已经明白了什么是函数指针(如果有…

基于Python实现“气象家园”自动签到

一、安装库 pip install OAFuncs 二、导入库 from OAFuncs.oa_sign.meteorological import sign_in_meteorological_home as sign三、签到 email your_email # 16031215qq.com password your_pwd sign(email, password…