无分词层次聚类与基于词对齐双语语料的机器翻译相似句检索
在自然语言处理领域,聚类和机器翻译是两个重要的研究方向。本文将介绍无分词层次聚类方法(NWSHCA)以及基于词对齐双语语料的机器翻译相似句检索方法。
无分词层次聚类方法(NWSHCA)
NWSHCA使用百度作为网络搜索引擎,搜索结果以导航树的形式展示。研究人员使用相同的16个中文关键词,比较了NWSHCA和Vivisimo形成的聚类数量,结果如下表所示:
| 比较对象 | 聚类数量 |
| — | — |
| NWSHCA | 接近Vivisimo |
| Vivisimo | - |
实验表明,NWSHCA能够在不进行分词的情况下,高效地对中文网络搜索结果进行聚类。它比线性时间聚类算法STC在中文文本上更快,并且最终的聚类描述标签以导航树的形式展示,便于浏览。然而,NWSHCA独立于中文词典,常见子串不具有语义,有时可能会生成不准确的聚类标签,如“日日日”。
基于词对齐双语语料的机器翻译相似句检索
在机器翻译中,句子相似度的度量非常重要,特别是在基于实例的机器翻译(EBMT)、信息检索和文本摘要等应用中。本文提出了一种新的方法,利用双语句子对之间的词对齐来度量输入句子和实例之间的相似度。
词对齐双语语料
基于语料的机器翻译系统有两种类型:统计机器翻译(SMT)和EBMT。SMT在训练过程中获取翻译模型,解码时不需要训练语料;而EBMT在翻译时从语料库中检索相似实例。可以生成一个混合机器翻译系统,它是一个SMT系统,但使用基于实例的解码器。该系统使用词对齐双语语料,由词对齐的句子对组成,用 (C, A, E) 表示,其中C是源语言句子,E是目标语言句子,A是C和E之间的词对齐。
词对齐的定义如下:给定句子对 (C, E),定义一个链接 (l = (i..j, s..t)),其中 (i..j) 表示句子C中的一个词序列,(i) 和 (j) 是位置索引;(s..t) 表示句子E中的一个词序列。句子对之间的词对齐是一组链接 ({l_1, l_2, …, l_{nl}})。在本文中,实例指的是三元组 (C, A, E)。
可以合并两个链接形成一个更大的链接,如果它们在两个句子中相邻。如果一个区域可以通过逐步合并两个相邻链接形成,则称该区域是独立的。在混合机器翻译系统中,语料库中的词对齐必须满足反转转换语法(ITG)约束,这样每个词对齐将形成一个二叉树,为约束词的重新排序提供了一种弱但有效的方法。
利用词对齐双语语料,可以提取短语对,称为块。每个块由一个或多个链接组合而成,并且必须是独立的。然后,使用相对频率构建相应的翻译模型。
相似句子的快速检索
将相似实例的检索分为两个阶段:
1.
快速检索阶段
:快速从语料库中检索相似实例,并将其作为候选。复杂度不应太高。
2.
精炼阶段
:精炼候选实例,找到最相似的实例。
在快速检索阶段,通过以下三个相似度度量来快速检索相似实例:
1.
匹配词度量
:给定输入句子 (I = w_1w_2…w_n) 和实例 (C, A, E),首先计算输入句子和实例中源句子C之间匹配的源词数量。相似度计算公式为:
[Sim_{word}(Input, Example) = \frac{2 * Match_{word}}{Len(I) + Len(C, A, E)}]
其中,(Match_{word}) 是匹配的词数,(Len(I)) 是输入句子的词数,(Len(C, A, E)) 是实例中源句子C的词数。
2.
匹配块度量
:对于输入句子中的每个词 (w_i),搜索以 (w_i) 为第一个词的块。为了检索这些块,首先获取以 (w_i) 为第一个词的所有源短语,然后在翻译模型中找到每个源短语的块。考虑到复杂度,设置源短语的最大长度M(这里M = 3或5)。对于每个源短语,可能存在多个块,按概率排序并保留最佳的N个块(这里N = 5)。
输入句子可以表示为:
[\sigma(I) = {block | block \in B_{i - gram}^k, 1 \leq i \leq n, 1 \leq k \leq M}]
实例 (C, A, E) 可以表示为:
[\phi(C, A, E) = {block | block \in B_{i - gram}^k, 1 \leq k \leq M, block \in A^
}]
其中,(A^
) 表示对齐A中的链接或可以通过独立合并相邻链接形成的块。可以使用匹配块的数量来度量输入和实例之间的相似度:
[Sim_{block}(Input, Example) = \frac{2 * Match_{block}}{B_{Input - gram} + B_{Example - gram}}]
由于每个块都附有一个概率,还可以通过以下方式计算相似度:
[Sim_{prob}(Input, Example) = \frac{2 * \sum_{b} Pr(b)}{B_{Input - gram} + B_{Example - gram}}]
最终的快速检索相似度度量为:
[Sim_{fast}(Input, Example) = \alpha * Sim_{word} + \beta * Sim_{block} + \gamma * Sim_{prob}]
其中,(\alpha + \beta + \gamma = 1),这里使用均值,即 (\alpha = \beta = \gamma = \frac{1}{3})。在快速检索阶段,首先使用 (Sim_{word}) 过滤实例,然后计算剩余实例的 (Sim_{fast}),并检索最佳的N个实例。
下面是快速检索相似实例的流程:
graph TD;
A[输入句子] --> B[计算匹配词度量];
B --> C[过滤实例];
C --> D[计算匹配块度量和概率度量];
D --> E[计算快速检索相似度度量];
E --> F[检索最佳N个实例];
通过以上方法,可以在机器翻译中更有效地检索相似实例,从而提高翻译质量。
无分词层次聚类与基于词对齐双语语料的机器翻译相似句检索
候选实例的精炼
在检索到候选相似实例后,需要使用句子的浅层结构来精炼这些候选实例,以找到最相似的M个实例。
对齐结构度量
给定输入句子I和实例 (C, A, E),首先搜索匹配的块,此时块中源短语的顺序必须与输入中词的顺序相对应。匹配将输入和实例分别划分为几个区域,有些区域匹配,有些不匹配。将每个区域视为一个整体,并根据匹配区域的顺序在输入和实例之间进行对齐。
例如,在图2的示例中,实例中的区域 (1..3, 3..5) 与输入中的区域 (1..1) 对齐。可以使用类似编辑距离的方法来度量相似度,计算以区域为对象的删除/插入/替换操作的数量。设置每个删除和插入操作的惩罚为1,考虑到实例中不匹配的区域可能独立或不独立,若区域独立,替换的惩罚为0.5,否则为1。
计算I和 (C, A, E) 结构相似度的度量公式为:
[Sim_{align}(Input, Example) = 1 - \frac{D + I + S}{R_{input} + R_{example}}]
其中,D、I、S分别是删除、插入和替换距离,(R_{input}) 和 (R_{example}) 分别是输入和实例中的区域数量。
语义度量
使用中文语义词典“Tong_Yi_Ci_Ci_Lin”来计算语义距离。在该词典中,词的语义分为三个级别,分别用大写字母、小写字母和整数表示,每个语义可以用一个唯一的代码表示。每个代码可能包含一个或多个词,每个词可能有多个代码,因为它可能有多种语义。
计算两个词之间的语义距离:如果大级别不同,距离为3;中级别不同,距离为2;小级别不同,距离为1;如果代码相等,距离为0。由于每个词有多个代码,选择最近的距离。
使用词的语义距离来度量输入和实例中两个区域的语义距离:
[Dist_{sem}(reg_1, reg_2) = \frac{\sum_{w_1 \in reg_1, w_2 \in reg_2} Dist_{sem - word}(w_1, w_2)}{Len(reg_1) + Len(reg_2)} * \frac{1}{3}]
给定与4.1节相同的匹配,替换距离是替换区域语义距离的总和:
[S_{sem}(Input, Example) = \sum_{regions} Dist_{sem}(region_{input}, region_{example})]
然后,得到语义度量公式:
[Sim_{sem}(Input, Example) = 1 - \frac{D + I + S_{sem}}{R_{input} + R_{example}}]
最终,考虑所有上述度量的相似度度量公式为:
[Sim_{final}(Input, Example) = \alpha’ * Sim_{fast} + \beta’ * Sim_{align} + \gamma’ * Sim_{sem}]
其中,(\alpha’ + \beta’ + \gamma’ = 1),这里也使用均值作为权重。
下面是精炼候选实例的流程:
graph TD;
A[候选实例] --> B[计算对齐结构度量];
B --> C[计算语义度量];
C --> D[计算最终相似度度量];
D --> E[找到最相似的M个实例];
实验结果
在一个中英双语语料库上进行了实验,该语料库是IWSLT2007开放中英翻译任务的训练语料库,包含39,953个句子对,测试集有489个中文句子。在训练过程中,首先为语料库中的句子对获取满足ITG约束的词对齐,然后构建翻译模型,并检索和存储每个实例中的块。
相似实例检索的评估
通过手动方式评估检索方法:从测试集中随机获取200个输入句子,将其作为输入检索相似实例(每个输入10个实例),并手动验证检索到的实例是否与输入相似。
定义一个正确的相似实例为:如果检索到的实例可以通过修改x个独立区域转换为输入句子,其中每个区域最多由y个块组成(这里y = 2)。
为了评估两个检索阶段,还获取了快速检索阶段候选实例中的前10个实例,并与最终的10个实例进行比较。结果如下表所示:
| x值 | 测试数量 | 快速检索 - 正确数量 | 快速检索 - 准确率 | 精炼检索 - 正确数量 | 精炼检索 - 准确率 |
| — | — | — | — | — | — |
| 1 | 200 | 90 | 45% | 90 | 45% |
| 2 | 200 | 141 | 70.5% | 153 | 76.5% |
| 3 | 200 | 155 | 77.5% | 174 | 87% |
从表中可以看出,随着x的增大,准确率逐渐提高。当x = 1时,两个阶段的准确率相同,因为一些输入句子非常短,两个阶段都会找到完全相似的实例。但当x增大时,精炼检索会得到更准确的实例。
翻译的评估
将检索模块集成到混合机器翻译系统中,并将翻译结果与其他统计机器翻译系统进行比较。结果如下表所示:
| 系统 | Bleu分数(%) |
| — | — |
| Moses | 22.61 |
| SMT - CKY | 28.33 |
| 带快速检索的混合MT | 30.03 |
| 带精炼检索的混合MT | 33.05 |
结果表明,使用新的检索模块,混合机器翻译系统取得了改进,说明检索相似实例的方法是有效的。
总结
提出了一种在混合机器翻译系统中为输入句子检索相似实例的方法,该方法充分利用了语料库中包含的词对齐信息。由于该方法考虑了每个实例中隐含的内部翻译过程,有助于提高翻译质量。
未来,需要进一步改进精炼度量,特别是语义度量,并考虑如何调整权重。此外,还应考虑如何更有效地使用检索到的实例。
超级会员免费看
1154

被折叠的 条评论
为什么被折叠?



