当前位置: 首页 > news >正文

如何选择大连网站建设wordpress大负载

如何选择大连网站建设,wordpress大负载,游戏网站开发名字,广告做网站浅谈用 Python 计算文本 BLEU 分数BLEU, 全称为 Bilingual Evaluation Understudy(双语评估替换), 是一个比较候选文本翻译与其他一个或多个参考翻译的评价分数尽管 BLEU 一开始是为翻译工作而开发, 但它也可以被用于评估文本的质量, 这种文本是为一套自然语言处理任务而生成的…浅谈用 Python 计算文本 BLEU 分数BLEU, 全称为 Bilingual Evaluation Understudy(双语评估替换), 是一个比较候选文本翻译与其他一个或多个参考翻译的评价分数尽管 BLEU 一开始是为翻译工作而开发, 但它也可以被用于评估文本的质量, 这种文本是为一套自然语言处理任务而生成的通过本教程, 你将探索 BLEU 评分, 并使用 Python 中的 NLTK 库对候选文本进行评估和评分完成本教程后, 你将收获:BLEU 评分的简单入门介绍, 并直观地感受到到底是什么正在被计算如何使用 Python 中的 NLTK 库来计算句子和文章的 BLEU 分数如何用一系列的小例子来直观地感受候选文本和参考文本之间的差异是如何影响最终的 BLEU 分数让我们开始吧浅谈用 Python 计算文本 BLEU 分数照片由 Bernard Spragg. NZ 提供, 保留所有权教程概述本教程分为 4 个部分; 他们分别是:双语评估替换评分介绍计算 BLEU 分数累加和单独的 BLEU 分数运行示例双语评估替换评分双语评估替换分数 (简称 BLEU) 是一种对生成语句进行评估的指标完美匹配的得分为 1.0, 而完全不匹配则得分为 0.0这种评分标准是为了评估自动机器翻译系统的预测结果而开发的尽管它还没做到尽善尽美, 但还是具备了 5 个引人注目的优点:计算速度快, 计算成本低容易理解与具体语言无关和人类给的评估高度相关已被广泛采用BLEU 评分是由 Kishore Papineni 等人在他们 2002 年的论文 BLEU: a Method for Automatic Evaluation of Machine Translation 中提出的这种评测方法通过对候选翻译与参考文本中的相匹配的 n 元组进行计数, 其中一元组 (称为 1-gram 或 unigram) 比较的是每一个单词, 而二元组 (bigram) 比较的将是每个单词对这种比较是不管单词顺序的BLEU 编程实现的主要任务是对候选翻译和参考翻译的 n 元组进行比较, 并计算相匹配的个数匹配个数与单词的位置无关匹配个数越多, 表明候选翻译的质量就越好摘自论文 BLEU: a Method for Automatic Evaluation of Machine Translation,2002 年发表n 元组匹配的计数结果会被修改, 以确保将参考文本中的单词都考虑在内, 而不会对产生大量合理词汇的候选翻译进行加分在 BLEU 论文中这被称之为修正的 n 元组精度糟糕的是, 机器翻译系统可能会生成过多的合理单词, 从而导致翻译结果不恰当, 尽管其精度高... 从直观上这个问题是明显的: 在识别出匹配的候选单词之后, 相应的参考单词应该被视为用过了我们将这种直觉定义为修正的单元组精度摘自论文 BLEU: a Method for Automatic Evaluation of Machine Translation,2002 年发表BLEU 评分是用来比较语句的, 但是又提出了一个能更好地对语句块进行评分的修订版本, 这个修订版根据 n 元组出现的次数来使 n 元组评分正常化我们首先逐句计算 n 元组匹配数目接下来, 我们为所有候选句子加上修剪过的 n 元组计数, 并除以测试语料库中的候选 n 元组个数, 以计算整个测试语料库修正后的精度分数 pn摘自论文 BLEU: a Method for Automatic Evaluation of Machine Translation,2002 年发表实际上, 一个完美的分数是不可能存在的, 因为这意味着翻译必须完全符合参考甚至连人类翻译家都不能做到这点对计算 BLEU 分数的参考文本的数量和质量的水平要求意味着在不同数据集之间的比较 BLEU 分数可能会很麻烦BLEU 评分的范围是从 0 到 1 很少有翻译得分为 1, 除非它们与参考翻译完全相同因此, 即使是一个人类翻译, 也不一定会在一个大约 500 个句子 (也就是 40 个普通新闻报道的长度) 的测试语料上得 1 分, 一个人类翻译在四个参考翻译下的得分为 0.3468, 在两个参考翻译下的得分为 0.2571摘自论文 BLEU: a Method for Automatic Evaluation of Machine Translation,2002 年发表除了翻译之外, 我们还可以将 BLEU 评分用于其他的语言生成问题, 通过使用深度学习方法, 例如:语言生成图片标题生成文本摘要语音识别以及更多计算 BLEU 分数Python 自然语言工具包库 (NLTK) 提供了 BLEU 评分的实现, 你可以使用它来评估生成的文本, 通过与参考文本对比语句 BLEU 分数NLTK 提供了 sentence_bleu()函数, 用于根据一个或多个参考语句来评估候选语句参考语句必须作为语句列表来提供, 其中每个语句是一个记号列表候选语句作为一个记号列表被提供例如:fromnltk.translate.bleu_scoreimportsentence_bleureference[[this,is,a,test],[this,istest]]candidate[this,is,a,test]scoresentence_bleu(reference,candidate)print(score)运行这个例子, 会输出一个满分, 因为候选语句完全匹配其中一个参考语句1.0语料库 BLEU 分数NLTK 还提供了一个称为 corpus_bleu()的函数来计算多个句子 (如段落或文档) 的 BLEU 分数参考文本必须被指定为文档列表, 其中每个文档是一个参考语句列表, 并且每个可替换的参考语句也是记号列表, 也就是说文档列表是记号列表的列表的列表候选文档必须被指定为列表, 其中每个文件是一个记号列表, 也就是说候选文档是记号列表的列表这听起来有点令人困惑; 以下是一个文档的两个参考文档的例子# two references for one documentfromnltk.translate.bleu_scoreimportcorpus_bleureferences[[[this,is,a,test],[this,istest]]]candidates[[this,is,a,test]]scorecorpus_bleu(references,candidates)print(score)运行这个例子就像之前一样输出满分1.0累加和单独的 BLEU 分数NLTK 中提供的 BLEU 评分方法允许你在计算 BLEU 分数时为不同的 n 元组指定权重这使你可以灵活地计算不同类型的 BLEU 分数, 如单独和累加的 n-gram 分数让我们来看一下单独的 N-Gram 分数单独的 N-gram 分数是对特定顺序的匹配 n 元组的评分, 例如单个单词 (称为 1-gram) 或单词对(称为 2-gram 或 bigram)权重被指定为一个数组, 其中每个索引对应相应次序的 n 元组仅要计算 1-gram 匹配的 BLEU 分数, 你可以指定 1-gram 权重为 1, 对于 2 元, 3 元和 4 元指定权重为 0, 也就是权重为 (1,0,0,0) 例如:# 1-gram individual BLEUfromnltk.translate.bleu_scoreimportsentence_bleureference[[this,is,small,test]]candidate[this,is,a,test]scoresentence_bleu(reference,candidate,weights(1,0,0,0))print(score)运行此例将输出得分为 0.50.75我们可以重复这个例子, 对于从 1 元到 4 元的各个 n-gram 运行语句如下所示:# n-gram individual BLEUfromnltk.translate.bleu_scoreimportsentence_bleureference[[this,is,a,test]]candidate[this,is,a,test]print(Individual 1-gram: %f%sentence_bleu(reference,candidate,weights(1,0,0,0)))print(Individual 2-gram: %f%sentence_bleu(reference,candidate,weights(0,1,0,0)))print(Individual 3-gram: %f%sentence_bleu(reference,candidate,weights(0,0,1,0)))print(Individual 4-gram: %f%sentence_bleu(reference,candidate,weights(0,0,0,1))运行该示例, 结果如下所示:Individual1-gram:1.000000Individual2-gram:1.000000Individual3-gram:1.000000Individual4-gram:1.000000虽然我们可以计算出单独的 BLEU 分数, 但这并不是使用这个方法的初衷, 而且得出的分数也没有过多的含义, 或者看起来具有说明性累加的 N-Gram 分数累加分数是指对从 1 到 n 的所有单独 n-gram 分数的计算, 通过计算加权几何平均值来对它们进行加权计算默认情况下, sentence_bleu()和 corpus_bleu()分数计算累加的 4 元组 BLEU 分数, 也称为 BLEU-4 分数BLEU-4 对 1 元组, 2 元组, 3 元组和 4 元组分数的权重为 1/4(25)或 0.25 例如:# 4-gram cumulative BLEUfromnltk.translate.bleu_scoreimportsentence_bleureference[[this,is,small,test]]candidate[this,is,a,test]scoresentence_bleu(reference,candidate,weights(0.25,0.25,0.25,0.25))print(score)运行这个例子, 输出下面的分数:0.707106781187累加的和单独的 1 元组 BLEU 使用相同的权重, 也就是 (1,0,0,0) 计算累加的 2 元组 BLEU 分数为 1 元组和 2 元组分别赋 50的权重, 计算累加的 3 元组 BLEU 为 1 元组, 2 元组和 3 元组分别为赋 33的权重让我们通过计算 BLEU-1,BLEU-2,BLEU-3 和 BLEU-4 的累加得分来具体说明:# cumulative BLEU scoresfromnltk.translate.bleu_scoreimportsentence_bleureference[[this,is,small,test]]candidate[this,is,a,test]print(Cumulative 1-gram: %f%sentence_bleu(reference,candidate,weights(1,0,0,0)))print(Cumulative 2-gram: %f%sentence_bleu(reference,candidate,weights(0.5,0.5,0,0)))print(Cumulative 3-gram: %f%sentence_bleu(reference,candidate,weights(0.33,0.33,0.33,0)))print(Cumulative 4-gram: %f%sentence_bleu(reference,candidate,weights(0.25,0.25,0.25,0.25)))运行该示例输出下面的分数结果的差别很大, 比单独的 n-gram 分数更具有表达性Cumulative1-gram:0.750000Cumulative2-gram:0.500000Cumulative3-gram:0.632878Cumulative4-gram:0.707107在描述文本生成系统的性能时, 通常会报告从 BLEU-1 到 BLEU-4 的累加分数运行示例在这一节中, 我们试图通过一些例子来进一步获取对 BLEU 评分的直觉我们在语句层次上通过用下面的一条参考句子来说明:the quick brown fox jumped over the lazy dog首先, 我们来看一个完美的分数# prefect matchfromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[the,quick,brown,fox,jumped,over,the,lazy,dog]scoresentence_bleu(reference,candidate)print(score)运行例子输出一个完美匹配的分数1.0接下来, 让我们改变一个词, 把 quick 改成 fast# one word differentfromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[the,fast,brown,fox,jumped,over,the,lazy,dog]scoresentence_bleu(reference,candidate)print(score)结果是分数略有下降0.7506238537503395尝试改变两个词, 把 quick 改成 fast , 把 lazy 改成 sleepy# two words differentfromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[the,fast,brown,fox,jumped,over,the,sleepy,dog]scoresentence_bleu(reference,candidate)print(score)运行这个例子, 我们可以看到得分线性下降0.4854917717073234如果候选语句的所有单词与参考语句的都不一样呢?# all words differentfromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[a,b,c,d,e,f,g,h,i]scoresentence_bleu(reference,candidate)print(score)我们得到了一个更糟糕的分数0.0现在, 让我们尝试一个比参考语句的词汇更少 (例如, 放弃最后两个词) 的候选语句, 但这些单词都是正确的# shorter candidatefromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[the,quick,brown,fox,jumped,over,the]scoresentence_bleu(reference,candidate)print(score)结果和之前的有两个单词错误的情况很相似0.7514772930752859如果我们把候选语句调整为比参考语句多两个单词, 那又会怎么样?# longer candidatefromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[the,quick,brown,fox,jumped,over,the,lazy,dog,from,space]scoresentence_bleu(reference,candidate)print(score)再一次, 我们可以看到, 我们的直觉是成立的, 得分还是有点像 有两个错字 的情况0.7860753021519787最后, 我们来比较一个很短的候选语句: 只有两个单词的长度# very shortfromnltk.translate.bleu_scoreimportsentence_bleureference[[the,quick,brown,fox,jumped,over,the,lazy,dog]]candidate[the,quick]scoresentence_bleu(reference,candidate)print(score)运行此示例首先会打印一条警告消息, 指出不能执行评估 3 元组及以上部分 (直到 4 元组) 这是合乎情理的, 因为在候选语句中我们最多只能用 2 元组来运行UserWarning:Corpus/Sentencecontains0counts of3-gram overlaps.BLEU scores might be undesirable;useSmoothingFunction().warnings.warn(_msg)接下来, 我们会得到一个非常低的分数0.0301973834223185你可以继续用这些例子来进行其他试验BLEU 包含的数学知识非常简单, 我也鼓励你阅读这篇论文, 并在自己电子表格程序中探索计算语句评估分数的方法进一步阅读如果你要深入研究, 本节将提供更多有关该主题的资源BLEU 在维基百科的主页BLEU: a Method for Automatic Evaluation of Machine Translation,2002 年发表nltk.translate.bleu_score 的源码nltk.translate 包的 API 文档总结在本教程中, 你探索了 BLEU 评分, 根据在机器翻译和其他语言生成任务中的参考文本对候选文本进行评估和评分具体来说, 你学到了:BLEU 评分的简单入门介绍, 并直观地感受到到底是什么正在被计算如何使用 Python 中的 NLTK 库来计算语句和文章的 BLEU 分数如何使用一系列的小例子来直观地感受候选文本和参考文本的差异是如何影响最终的 BLEU 分数来源: https://cloud.tencent.com/developer/article/1042161
http://www.sadfv.cn/news/153081/

相关文章:

  • 视频网站怎么做算法网站的标准
  • 网站开发如何实现数据库的链接大连城市建设网站
  • 正安网站建设湘潭交通网站
  • 个人免费网站创建手机号交易网站源码
  • 武义做网站做ui要上那些网站
  • 网站优化标签photoshop制作网站海报
  • 普陀网站建设手机建网站推广
  • 平台网站很难做餐饮设计公司名字
  • 东莞seo网站优化方式太仓公司网站建设电话
  • 专门做简历的网站软件大连投诉网站
  • 自己做的网站怎么植入erp比较好的ui设计网站
  • 网站防护空间网站开发需解决的难题
  • 网站建设经典文章网站透明效果
  • 便民网站开发怎么做qq代刷网站
  • 学校网站制作方案ppt设计接单
  • 企业网站建设用什么网站百度忽然搜索不到
  • tp框架做餐饮网站山西推广型网站制作
  • wordpress 多站点教程宁夏网站制作哪家好
  • 溧阳企业网站建设wordpress文章页面修改
  • 国土网站建设自查报告网站线框图软件
  • APP加网站建设预算多少钱金色 网站 模板
  • 长安高端装备网站设计公司seo是什么?
  • 上海专业网站建设服php网站模板开源
  • 那里做直播网站代理公司名字取什么名
  • 个人网站建设规划书黄山旅游攻略必去景点
  • 湖南省城乡建设厅网站查证怎样设计网站静态页面
  • 版面设计用什么软件网站优化建设上海
  • 广州建站工作室视觉元素网站
  • 什么软件可以做网站企业营业执照查询系统入口
  • 网站空间在哪买做网站推销手表