《BLEU: a Method for Automatic Evaluation of Machine Translation》翻译

news2024/10/27 18:41:34

文章目录

    • 0. 摘要
    • 1. 引言
      • 1.1 理由
      • 1.2 观点
    • 2. 基准 BLEU 指标
      • 2.1 修正的 n-gram 精度
        • 2.1.1 对文本块的修正 n-gram 精度
        • 2.1.2 仅使用修正 n-gram 精度对系统进行排序
        • 2.1.3 结合修正的 n-gram 精度
      • 2.2 句子长度
        • 2.2.1 召回率的问题
        • 2.2.2 句子简短惩罚
      • 2.3 BLEU 细节
    • 3. BLEU 评估
    • 4. 人类评估
      • 4.1 单语组配对判断
      • 4.2 双语组配对判断
    • 5. BLEU与人类评估
    • 6. 结论
    • 7. 碎碎念

0. 摘要

对机器翻译进行的人工评估虽然全面,但成本高昂。人工评估可能需要数月才能完成,并且涉及无法重复使用的人力劳动。我们提出了一种自动化的机器翻译评估方法,该方法快速、廉价、与语言无关,与人工评估高度相关,并且每次运行的边际成本很低。我们将这种方法作为熟练人类评审员的自动替代,当需要快速或频繁评估时,可以替代他们进行评估。

1. 引言

1.1 理由

对机器翻译(MT)的人工评估权衡了翻译的许多方面,包括翻译的充分性、忠实度和流畅性(Hovy, 1999;White 和 O’Connell, 1994)。Reeder(2001)提供了一个全面的机器翻译评估技术目录及其丰富的文献。大多数情况下,这些不同的人工评估方法都相当昂贵(Hovy, 1999)。此外,它们可能需要数周或数月才能完成。这是一个大问题,因为机器翻译系统的开发者需要监控系统的日常变化效果,以便从中筛选出好的想法并剔除坏的想法。我们相信,机器翻译的进步源于评估,而目前有大量有益的研究思路因评估瓶颈而无法释放。开发者将从一种廉价、快速、与语言无关且与人工评估高度相关的自动评估中受益。在本文中,我们提出了这样一种评估方法。

1.2 观点

如何衡量翻译性能?机器翻译越接近专业人类翻译,效果越好。这是我们提案的核心思想。为了判断机器翻译的质量,我们使用数值指标来测量其与一个或多个参考人类翻译的接近程度。因此,我们的 MT 评估系统需要两个组件:

  1. 数值的「翻译接近度」指标
  2. 高质量人类参考翻译的语料库

我们将接近度指标设计成类似于语音识别领域广泛使用的词错误率指标,适当地修改以适应多参考翻译,并允许在词汇选择和词序上的合理差异。主要思想是使用加权平均的可变长度短语匹配来对比参考翻译。这种方法催生了一系列使用不同加权方案的指标。我们从中选择了一个有前景的基准指标。

在第 2 节中,我们详细描述了基准指标。在第 3 节中,我们评估了 BLEU 的性能。在第 4 节中,我们描述了一项人类评估实验。在第 5 节中,我们将基准指标的性能与人类评估进行了比较。

2. 基准 BLEU 指标

通常,给定一个源句子,存在许多「完美」的翻译,这些翻译在词汇选择或顺序上可能有所不同,即使使用相同的词。然而,人类可以清楚地区分好的翻译和差的翻译。例如,考虑以下两个中文源句子的候选翻译:

例1:

  • 候选1: It is a guide to action which ensures that the military always obeys the commands of the party.
  • 候选2: It is to insure the troops forever hearing the activity guidebook that party direct.

虽然它们看起来是关于同一主题,但质量差异显著。为了比较,这里有三个相同句子的参考人类翻译:

  • 参考1: It is a guide to action that ensures that the military will forever heed Party commands.
  • 参考2: It is the guiding principle which guarantees the military forces always being under the command of the Party.
  • 参考3: It is the practical guide for the army always to heed the directions of the party.

候选 1 与这三个参考翻译共享许多词和短语,而候选 2 则没有。我们将在第 2.1 节中量化这种共享的概念。例如,候选 1 与参考 1 共享「It is a guide to action」,与参考 2 共享「which」,与参考 1 共享「ensures that the military」,与参考 2 和 3 共享「always」,与参考1共享「commands」,以及与参考 2 共享「of the party」(忽略大小写)。相比之下,候选 2 的匹配显著少且程度较低。

显然,只需比较每个候选翻译与参考翻译之间的 n-gram 匹配,一个程序就可以将候选翻译 1 排在候选翻译 2 之前。第 5 节中展示的大量翻译集合的实验表明,这种排名能力是一种普遍现象,而不是几个简单例子的产物。对 于BLEU 实现者来说,主要的编程任务是比较候选翻译的 n-gram 与参考翻译的 n-gram,并计算匹配的数量。这些匹配是位置无关的。匹配越多,候选翻译就越好。为了简化起见,我们首先关注计算单词匹配(unigram matches)。

2.1 修正的 n-gram 精度

我们指标的基石是熟悉的精度测量。要计算精度,需要计算出现在任何参考翻译中的候选翻译词(unigrams)的数量,并除以候选翻译中的总词数。然而,MT 系统可能会过度生成「合理」的词,导致不太可能但高精度的翻译。为了解决这个问题,我们引入了修正的unigram 精度。这涉及计算一个词在任何单个参考翻译中出现的最大次数,将每个候选词的总计数剪切到其最大参考计数,汇总这些剪切后的计数,并除以候选词的总数。

例2:

  • 候选: the the the the the the the.
  • 参考1: The cat is on the mat.
  • 参考2: There is a cat on the mat.

修正的 Unigram 精度 = 2/7。

在例 1 中,候选 1 的修正 unigram 精度为 17/18,而候选 2 的修正 unigram 精度为 8/14。同样,例 2 中的候选的修正 unigram 精度为 2/7,尽管其标准 unigram 精度为 7/7。

修正的 n-gram 精度对于任何 n 的计算方式类似:收集所有候选 n-gram 计数及其对应的最大参考计数,按其对应的参考最大值剪切,汇总,并除以候选 n-gram 的总数。在例 1 中,候选 1 的修正 bigram 精度为 10/17,而候选 2 的修正 bigram 精度为 1/13。在例 2 中,候选的修正 bigram 精度为0。

这种修正的 n-gram 精度评分捕捉了翻译的两个方面:充分性和流畅性。使用与参考相同词(1-grams)的翻译倾向于满足充分性,而更长的 n-gram 匹配则考虑了流畅性。

2.1.1 对文本块的修正 n-gram 精度

为了在多句测试集中计算修正的 n-gram 精度,我们在整个文档的语料库上评估 MT 系统,但我们的基本评估单位是句子。我们逐句计算 n-gram 匹配,汇总所有候选句子的剪切 n-gram 计数,并除以测试语料库中的候选 n-gram 总数,以计算整个测试语料库的修正精度得分,( p n p_n pn )。

p n = ∑ C ∈ { C a n d i d a t e s } ∑ n - g r a m ∈ C C o u n t c l i p ( n - g r a m ) ∑ C ′ ∈ { C a n d i d a t e s } ∑ n - g r a m ′ ∈ C ′ C o u n t ( n - g r a m ′ ) p_n = \frac{\sum_{C \in \{Candidates\}} \sum_{n\text{-}gram \in C} Count_{clip}(n\text{-}gram)}{\sum_{C' \in \{Candidates\}} \sum_{n\text{-}gram' \in C'} Count(n\text{-}gram')} pn=C{Candidates}n-gramCCount(n-gram)C{Candidates}n-gramCCountclip(n-gram)

2.1.2 仅使用修正 n-gram 精度对系统进行排序

为了验证修改后的 n-gram 精度能否区分非常好的翻译和不好的翻译,我们计算了一个(优秀的)人类译者和一个标准(较差的)机器翻译系统的修改精度数值,每个系统对 127 个源语句分别使用了 4 个参考翻译。平均精度结果如图 1 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

区分人类翻译(高精度)和机器翻译(低精度)的强烈信号非常明显。随着从单字精度到四字精度的增加,这种差异变得更加显著。似乎任何单一的 n-gram 精度分数都可以区分出好的翻译和差的翻译。然而,为了有用,该指标还必须能够可靠地区分质量差异不大的翻译。此外,它必须能够区分两个质量不同的人类翻译。后一个要求确保了当机器翻译(MT)接近人类翻译质量时,指标的持续有效性。

为此,我们获得了一份由缺乏母语水平的译者(在源语言中文和目标语言英文上都不具备母语水平)进行的人类翻译。作为对比,我们还获得了一份由母语为英语的译者翻译的相同文档。此外,我们还获得了三个商业系统的机器翻译。这五个「系统」(两个是人类译者,三个是机器系统)与两份专业人类翻译参考进行评分。图 2 显示了平均修正后的 n-gram 精度结果。

在这里插入图片描述

每一个 n-gram 统计数据都暗示了相同的排名:H2(人类译者2)优于H1(人类译者1),而 H1 和 S3(机器/系统 3)之间的质量有很大差距。S3 似乎优于 S2,而 S2 又优于 S1。值得注意的是,这与我们稍后讨论的人类评审员对这些「系统」分配的排名顺序完全一致。尽管任何单一的 n-gram 精度都提供了充足的信号,但将所有这些信号合并成一个单一的数值指标会更加稳健。

2.1.3 结合修正的 n-gram 精度

我们应该如何结合不同 n-gram 大小的修正精度呢?对这五个系统来说,修正精度的加权线性平均得出了令人鼓舞的结果。然而,如图 2 所示,修正 n-gram 精度随着 n 的增加大致呈指数衰减:修正单字精度远大于修正双字精度,修正双字精度又远大于修正三字精度。一个合理的平均方案必须考虑到这种指数衰减;对修正精度的对数进行加权平均满足了这一要求。

BLEU 使用均匀权重的对数平均,这相当于使用修正 n-gram 精度的几何平均值。通过实验,我们发现使用最大 n-gram 阶数为4时,与单语人类评判的相关性最好,尽管 3-gram 和 5-gram 也给出了相似的结果。

2.2 句子长度

候选翻译不应过长或过短,评价指标应强制执行这一点。在某种程度上,n-gram 精度已经实现了这一点。n-gram 精度会对候选翻译中出现但在任何参考翻译中都不存在的多余词语进行惩罚。此外,如果一个词在候选翻译中出现的频率超过其在参考翻译中的最大出现次数,修正精度也会受到惩罚。这奖励了适当使用词语的次数,并惩罚了超过参考翻译中出现次数的使用。然而,仅靠修正 n-gram 精度不足以强制执行适当的翻译长度,正如下面这个简短且荒谬的例子所示。

例子3:
候选翻译: of the
参考翻译1: It is a guide to action that ensures that the military will forever heed Party commands.
参考翻译2: It is the guiding principle which guarantees the military forces always being under the command of the Party.
参考翻译3: It is the practical guide for the army always to heed the directions of the party.

由于这个候选翻译与适当长度相比太短,人们预期会发现夸大的精度:修正单字精度是 2/2,修正双字精度是 1/1。

2.2.1 召回率的问题

传统上,精度与召回率配对使用以克服此类与长度相关的问题。然而,BLEU 评估指标考虑了多个参考翻译,每个参考翻译可能使用不同的词汇来翻译相同的源词。此外,一个好的候选翻译只会使用(召回)这些可能选择中的一个,而不会使用全部。实际上,召回所有选择会导致糟糕的翻译。

以下是一个例子。

例子4
候选翻译1: I always invariably perpetually do.
候选翻译2: I always do.
参考翻译1: I always do.
参考翻译2: I invariably do.
参考翻译3: I perpetually do.

第一个候选翻译从参考翻译中召回了更多的词,但显然比第二个候选翻译差得多。因此,简单地计算所有参考词汇的召回率并不是一个好的衡量标准。诚然,可以通过对齐参考翻译来发现同义词,并基于概念而不是词汇来计算召回率。但是,考虑到参考翻译在长度、词序和句法上存在差异,这样的计算是复杂的。

2.2.2 句子简短惩罚

候选翻译比参考翻译更长的情况已经通过修正的 n-gram 精度度量得到了惩罚:因此无需再次惩罚它们。因此,我们引入了一个乘法的简短惩罚因子。有了这个简短惩罚,一个高分的候选翻译现在必须在长度、词汇选择和词序上与参考翻译匹配。需要注意的是,这个简短惩罚和修正的 n-gram 精度长度效应都不直接考虑源文本的长度;相反,它们考虑的是目标语言中参考翻译的长度范围。

我们希望当候选翻译的长度与任何参考翻译的长度相同时,简短惩罚为 1.0。例如,如果有三个参考翻译,长度分别为 12、15 和 17 个词,而候选翻译简短为 12 个词,我们希望简短惩罚为1。我们将最接近的参考句子长度称为「最佳匹配长度」。

还有一个考虑因素:如果我们逐句计算简短惩罚并取平均值,那么短句子的长度偏差会被严厉惩罚。因此,我们在整个语料库上计算简短惩罚,以允许句子层面上有一些自由度。我们首先通过对语料库中每个候选句子的最佳匹配长度求和来计算测试语料库的有效参考长度 r。我们选择简短惩罚为 r/c 的指数衰减,其中 c 是候选翻译语料库的总长度。

2.3 BLEU 细节

我们取测试语料库修正精度分数的几何平均值,然后将结果乘以一个指数形式的简短惩罚因子。目前,在计算精度之前进行的唯一文本规范化操作是大小写折叠。

首先,我们计算使用长度为 N 的 n-gram 和正权重 ( w n w_n wn)(权重和为1)得到的修正 n-gram 精度 ( p n p_n pn) 的几何平均值。接下来,设候选翻译的长度为 (c),有效参考语料库长度为 (r)。我们计算简短惩罚因子 (BP):

B P = { 1 if  c > r e ( 1 − r / c ) if  c ≤ r BP = \begin{cases} 1 & \text{if } c > r \\ e^{(1 - r/c)} & \text{if } c \leq r \end{cases} BP={1e(1r/c)if c>rif cr

然后,BLEU 分数计算公式为:

BLEU = B P ⋅ exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) \text{BLEU} = BP \cdot \exp \left( \sum_{n=1}^{N} w_n \log p_n \right) BLEU=BPexp(n=1Nwnlogpn)

在对数域中,排名行为更为明显:

log ⁡ BLEU = min ⁡ ( 1 − r c , 0 ) + ∑ n = 1 N w n log ⁡ p n \log \text{BLEU} = \min\left(1 - \frac{r}{c}, 0\right) + \sum_{n=1}^{N} w_n \log p_n logBLEU=min(1cr,0)+n=1Nwnlogpn

在我们的基线中,我们使用 (N = 4) 和均匀权重 ( w n w_n wn = 1/N)。

3. BLEU 评估

BLEU 指标的范围是从 0 到 1。除非候选翻译与参考翻译完全一致,否则很少有翻译能获得 1分。出于这个原因,即使是人类译者也不一定能得满分。需要注意的是,每句参考翻译越多,得分就越高。因此,在评估中,即使是「粗略」的比较,也必须谨慎对待不同数量的参考翻译:在一个包含大约 500 句(40 篇一般新闻报道)的测试语料库上,一名人类译者对四个参考翻译的得分为 0.3468,对两个参考翻译的得分为 0.2571。表1 显示了五个系统在该测试语料库上对两个参考翻译的 BLEU 得分。

在这个指标上,机器翻译系统 S2 和 S3 非常接近。因此,出现了几个问题:

在这里插入图片描述

  • BLEU 指标的差异是否可靠?
  • BLEU 得分的方差是多少?
  • 如果我们选择另一组随机的 500 句,是否仍然认为 S3 优于 S2?

为了回答这些问题,我们将测试语料库分成 20 个包含 25 句的块,分别计算这些块上的BLEU 指标。这样,我们就有了每个系统的 20 个 BLEU 指标样本。我们计算了均值、方差和配对 t 统计量,这些结果显示在表 2 中。t 统计量比较了表中每个系统与其左邻系统的得分。例如,S1 和 S2 的配对 t 统计量为 6。

需要注意的是,表 1 中的数字是基于 500 句的总体 BLEU 指标,但表 2 中的均值是基于 25句块的 BLEU 指标的平均值。正如预期的那样,对于每个系统,这两组结果非常接近,仅因有限块大小效应而略有不同。由于配对 t 统计量为 1.7 或以上时具有 95% 的显著性,系统得分之间的差异在统计上非常显著。25 句块上的报告方差作为像 500 句语料库这样的大型测试集方差的上限。

我们需要多少参考翻译?我们通过随机选择四个参考翻译中的一个作为每个40个故事的单一参考,模拟了一个单一参考的测试语料库。通过这种方式,我们确保了一定的风格变化。系统保持了与多个参考翻译相同的排名顺序。这一结果表明,我们可以使用一个具有单一参考的大型测试语料库,前提是这些翻译不是全部来自同一个译者。

4. 人类评估

我们有两组人类评审。第一组称为单语组,由 10 名以英语为母语的评审组成。第二组称为双语组,由 10 名以中文为母语且在过去几年中生活在美国的评审组成。这些人类评审中没有一位是专业翻译员。人类评审对我们 5 个标准系统的中文句子子集进行了评估,这些句子是从我们的 500 句测试语料库中随机抽取的。我们将每个源句子与其 5 个翻译配对,总共形成 250 对中文源句和英文翻译对。我们准备了一个包含这些翻译对的网页,这些翻译对被随机排序,以分散每个源句子的五个翻译。所有评审都使用同一个网页,并按照相同的顺序查看句子对。他们对每个翻译进行评分,评分范围从1(非常差)到5(非常好)。单语组的评审仅根据翻译的可读性和流畅性进行判断。

正如预期的那样,有些评审比其他评审更宽松,而有些句子比其他句子更容易翻译。为了考虑评审和句子之间的固有差异,我们比较了每个评审在各系统中对同一句子的评分。我们对按其总体平均得分排序的相邻系统进行了四次成对 t 检验比较。

4.1 单语组配对判断

图3 显示了两个连续系统得分之间的平均差异及其 95% 置信区间。我们可以看到,S2 比 S1好很多(在 5 分制上平均意见得分差异为 0.326),而 S3 被认为稍好一些(差异为0.114)。这两个差异在 95% 置信水平上都是显著的。人类评审 H1 比最好的系统要好得多,但略逊于人类评审 H2。这并不令人惊讶,因为 H1 既不是中文母语者也不是英文母语者,而 H2 是英语母语者。同样,人类译者之间的差异在 95% 置信水平上也是显著的。

在这里插入图片描述

4.2 双语组配对判断

图 4 显示了双语组的相同结果。他们同样发现 S3 略优于 S2(在 95% 置信水平上),尽管他们认为人类翻译之间的差异要小得多(在 95% 置信水平上不可区分),这表明双语评审更倾向于关注翻译的准确性而非流畅性。

在这里插入图片描述

5. BLEU与人类评估

图 5 显示了单语组评分相对于 5 个系统的 BLEU 得分的线性回归。高达 0.99 的相关系数表明 BLEU 得分很好地反映了人类的判断。特别有趣的是,BLEU 得分能够很好地区分 S2 和S3,尽管它们非常接近。图 6 显示了双语组的相应回归结果,相关系数为 0.96。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

我们现在将最差的系统作为参考点,比较其余系统相对于最差系统的 BLEU 得分和人类评审得分。我们对这 5 个系统的 BLEU 得分、单语组和双语组得分进行了线性归一化处理(根据5 个系统的最大和最小得分范围)。归一化后的得分如图 7 所示。该图展示了 BLEU 得分与单语组得分之间的高度相关性。特别值得注意的是,BLEU 对 S2 和 S3 之间小差异以及 S3 和 H1 之间较大差异的估计非常准确。图中还突出了机器翻译系统与人类译者之间的相对较大差距。

此外,我们推测双语组在评估 H1 相对于 H2 时相当宽容,因为单语组发现他们的翻译在流畅性上存在相当大的差异。

在这里插入图片描述

6. 结论

我们相信,BLEU 将通过帮助研究人员迅速聚焦于有效的建模思路,加速机器翻译研发周期。我们这一信念得到了最近一项统计分析的支持,该分析研究了 BLEU 与人类评判在从四种截然不同的语言(阿拉伯语、中文、法语、西班牙语)翻译成英语时的相关性,这四种语言代表了三种不同的语言家族(Papineni等,2002)。BLEU 的优势在于,它通过在测试语料库上平均化单个句子的评判误差,而不是试图精确预测每个句子的人类评判,从而与人类评判高度相关:量变引起质变。

最后,由于机器翻译和摘要都可以看作是从文本上下文生成自然语言的过程,我们认为 BLEU 可以被改编用于评估摘要或类似的自然语言生成任务。

7. 碎碎念

借助 ChatGPT 的帮助,又大致的对 BLEU 评分的论文做了一次梳理,ChatGPT 真香!

  • 我可以否认一样东西,但不一定非得诋毁它,或者剥夺别人相信的权利。

  • 你可以阴郁,可以懒散,可以不时地计较,过分敏感,可以有些不知足,暴躁,嫉妒,小气,但要记得拷问自我,必须追求善良,尽力坦荡,永远正直。

  • 在你还年轻的时候,你的选择没有对错之分,所有的选择都是对的,对于选择的结果,只是好与更好的差别。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

芒果数据集(猫脸码客第230期)

芒果深度学习检测:开启农业新视界 一、引言 芒果作为一种重要的热带水果,在全球范围内具有广泛的市场需求和经济价值。随着人们生活水平的提高,对芒果的品质要求也越来越高。芒果产业的规模不断扩大,产量逐年增加,如…

中间件安全(三)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文主要讲解apache命令执行漏洞(cve_2021_41773)。 靶场链接:Vulfocus 漏洞威胁分析平台 一,漏洞简介。 cve_2021_41773漏洞…

【Linux探索学习】第一弹——Linux的常用指令

目录 ​编辑 Linux常用命令 1 Linux命令初体验 1.1 常用命令演示 1). ls 2). pwd 3). cd 4). touch 5). mkdir 6). rm 1.2 Linux命令使用技巧 1.3 Linux命令格式 2 文件目录操作命令 2.1 ls 2.2 cd 2.3 cat 2.4 more 2.5 tail 2.6 mkdir 2.7 rmdir 2.8 rm…

《Windows PE》7.4 资源表应用

本节我们将通过两个示例程序,演示对PE文件内图标资源的置换与提取。 本节必须掌握的知识点: 更改图标 提取图标资源 7.4.1 更改图标 让我们来做一个实验,替换PE文件中现有的图标。如果手工替换,一定是先找到资源表,…

Telephony中ITelephony的AIDL调用关系

以Android14.0源码讲解 ITelephony来自framework下的com.android.internal.telephony包下 frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl这个接口用于与Phone交互的界面,主要由TelephonyManager类使用,一些地方仍在…

开拓鸿蒙测试新境界,龙测科技引领自动化测试未来

在当今科技舞台上,鸿蒙 OS 以非凡先进性强势登场,打破传统操作系统格局,为软件测试领域带来全新机遇与艰巨挑战。 一、鸿蒙 OS 的辉煌崛起 (一)壮丽发展历程与卓越市场地位 鸿蒙 OS 的发展如波澜壮阔的史诗。2023 年…

音视频开发之旅(98) -潜扩散模型(Latent Diffusion Model)原理及源码解析

目录 1.背景 2. 潜扩散模型(Latent Diffusion Model)原理 3. 应用场景 4. 推理源码解析 5. 资料 一、背景 前面我们分析扩散模型(Diffusion Model)了解到,它通过向数据中添加噪声,然后训练一个去噪模…

SSM学习day01 JS基础语法

一、JS基础语法 跟java有点像,但是不用注明数据类型 使用var去声明变量 特点1:var关键字声明变量,是为全局变量,作用域很大。在一个代码块中定义的变量,在其他代码块里也能使用 特点2:可以重复定义&#…

【mysql进阶】4-6. InnoDB 磁盘文件

InnoDB 磁盘⽂件 1 InnoDB存储引擎包含哪些磁盘⽂件? 🔍 分析过程 ✅ 解答问题 InnoDB的磁盘⽂件主要是表空间⽂件和其他⽂件,表空间包括:系统表空间、独⽴表空间、通⽤表空间、临时表空间和撤销表空间;其他⽂件有重做…

XQT_UI 组件|03 |加载组件 XQtLoading

XQtLoading 使用文档 简介 XQtLoading 是一个自定义的加载动画组件,旨在为用户提供可配置的旋转花瓣动画效果。它可以在应用程序中用于指示加载状态,提升用户体验。 特征 可配置性:用户可以根据需求调整旋转周期、缩放周期、最大/最小缩放…

JavaScript part2

一.前言 前面我们讲了一下js的基础语法,但是这些还是远远不够的,我们要想操作标签,实现一个动态且好看的页面,就得学会BOM和DOM,这些都是浏览器和页面的,这样我们才能实现一个好看的页面 二.BOM对象 BOM…

golang将指针传给cgo后还能被回收吗?

问题&#xff1a; 如果把golang分配的变量&#xff0c;其指针通过cgo传给c&#xff0c;并被c存储&#xff0c;那这个变量还能被gc回收吗&#xff1f; 实验代码&#xff1a; test_memory_leak.go package main/* #include <stdlib.h> #include <string.h> #incl…

yolov11的onnx模型C++ 调用

yolov11的onnx模型C调用 效果图一、python调用二、onnx模型导出三、python的onnx调用调用检测模型调用分割模型 四、C的onnx模型调用五 、视频流的检测后续 效果图 一、python调用 本文只记录生成的yolov11模型如何调用&#xff0c;其他可参考各种yolov11博客 模型下载&#x…

Spring Boot 应用开发全攻略:从入门到精通

Spring Boot 应用开发全攻略&#xff1a;从入门到精通 引言 在当今快速发展的软件开发领域&#xff0c;Spring Boot 作为一种快速开发框架&#xff0c;凭借其简洁、易用的特性&#xff0c;赢得了开发者的广泛青睐。无论是微服务架构还是传统的单体应用&#xff0c;Spring Boo…

Redis 单机、主从、哨兵和集群架构详解和搭建

目录 前言 单机部署 检查安装 gcc 环境 下载安装 Redis 启动 Redis 关闭 Redis 配置Redis 主从部署 整体架构图 主从复制配置 重启 Redis 验证 主从复制的作⽤ 主从复制缺点 哨兵部署&#xff08;Sentinel&#xff09; 整体架构图 哨兵模式配置 启动哨兵 验证…

首席数据官和首席数据分析官

根据分析人士的预测&#xff0c;首席数据官&#xff08;CDO&#xff09;和首席数据分析官&#xff08;CDAO&#xff09;必须更有效地展示他们对企业和AI项目的价值&#xff0c;以保障其在高管层的地位。Gartner的最新报告指出&#xff0c;CDO和CDAO在AI时代需要重新塑造自身定位…

ElegantBook:优美的 LATEX 书籍模板(中文的latex模版)

关注B站可以观看更多实战教学视频&#xff1a;hallo128的个人空间 ElegantBook&#xff1a;优美的 LATEX 书籍模板&#xff08;中文的latex模版&#xff09; Github地址&#xff1a;https://github.com/ElegantLaTeX/ElegantBook使用说明文档&#xff1a;https://static.latexs…

C++11实践指北

C11&#xff1a;书、在线工具、库。 书 1. 《现代C语言核心特性解析》 覆盖 C11~C20 特性的讲解。 视频跟读&#xff1a;https://www.bilibili.com/video/BV1nN4y1j7fv 现代CPP随笔_0CCh - 每天5分钟了解现代C新特性 2. 《C Primer》第五版 基于 C11 的 C 入门书。 正在看…

故障诊断 | CNN-ResNets滚动轴承故障诊断实例代码

故障诊断 | CNN-ResNets滚动轴承故障诊断实例代码 目录 故障诊断 | CNN-ResNets滚动轴承故障诊断实例代码效果一览基本介绍程序设计参考资料 效果一览 基本介绍 CNN-ResNets&#xff08;卷积神经网络-残差网络&#xff09;在滚动轴承故障诊断中是一种常用的方法。这种方法利用…

使用Angular构建动态Web应用

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Angular构建动态Web应用 1 引言 2 Angular简介 3 安装Angular 4 创建Angular项目 5 设计应用结构 6 创建组件 7 …