【Machine Translation】仅由单语数据生成双语词典

Word translation without parallel data

考虑在只有单语数据的情况下,如何生成双语词典。

基于假设:

相似的上下文中的单词具有相似的语义;在两个不同语言的词向量空间中,两个具有相似语义的单词在各自空间中具有相似的相对空间位置,因此只要学习一个线性映射就可以实现大致的对齐。

实现步骤:

A:对于语言X和Y,首先,各自训练词向量矩阵(300维)。

? 这里学习词向量用的是facebook的fastText而不是Word2vec。

B:学习旋转矩阵W,实现近似对齐。这里用到的方法是对抗学习

? b1:首先学习一个判别器,使用的方法是多层感知机,判别器的作用是区分在矩阵W作用下X的词向量仍然属于X语言,Y词向量依然属于Y语言,使得这个概率尽量大;

? b2:而矩阵W的作用是,使得判别器尽可能区分不了WX与Y,即经W变换后的X词向量,和Y的词向量差别最小。

? 综合来说,即最小化下面两个目标函数:

C:优化W矩阵。

上 面的学习并没有考虑不同频率的单词会给学习带来很大的影响。X中频率小的单词可能在向Y的映射中根本就没有一个匹配,这样在B中训练W时,频率的问题可能带来很大的影响,因此在C步骤中我们消除这种影响:考虑频度最高的单词(如5k),用\(min |WX - Y|\)的方法建立一个暂时的假的词典,利用特定提高方法(使用的是Procrustes algorithm),不断迭代,这个过程不断更新词典和W,得到更新的W。实验发现,这个做法的提高并不是很大。

D:进行最终的翻译。

这里的翻译并不是指用W直接旋转X后得到Y,而是重新定义了单词与单词之间的距离度量,称作CSLS。CSLS的做法是定义一个二部图,即:对于X每个单词,找到Y中与它距离最近的K个单词,作为它的邻居,Y亦然。之后,定义新的距离度量为:

这样,最终根据这个度量最小找到X在Y中的翻译单词到底是哪个。对X中每一个单词都应用上述步骤,最终得到双语词典。

原文地址:https://www.cnblogs.com/duye/p/9771649.html

时间: 2024-08-30 11:34:22

【Machine Translation】仅由单语数据生成双语词典的相关文章

【Machine Translation】无监督神经机器翻译论述

Unsupervised NMT 概述 神经机器翻译系统取得了很好的翻译水平,但非常依赖于平行语料.目前已经有利用大量单语数据训练模型的研究,这其中包括: 仅仅由两份单语语料(不平行)训练出双语词典.这个的核心是学习一个旋转矩阵W,使得两份语料的词向量空间对齐,再进行一些调整更好的对齐两词向量空间,最后进行单词到单词的翻译,即生成了双语词典. 对偶学习的思想.有些研究里也提出迭代后向翻译,但思想是类似的,即通过翻译模型生成假的平行语料,再利用该平行语料训练模型,迭代此过程. 利用第三种语言.翻译

根据数据生成表单

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>根据数据生成表单</title> <script> //定义一个数组承接里面的对象内容 //提取数组中的元素(这个元素是对象) //用元素对象type属性判断这个对象是什么类型的标签 //再有对象拿到属性值给标签附上属性 //老套路 window.onload = function()

开源驰骋工作流CCFlow的通过导入内部数据生成表单的示例

应用背景:ccform的表单设计是自上而下的设计,就是说现有表单后有数据表,就是说在设计表单时ccform就自动创建了字段,如果该表单的表有了该字段就不创建了.但是很多程序员习惯了先创建表,然后在创建表单,也就是说在设计表单时,系统已经有该表了,要以已经有的表结构做为该表单的模版导入,就需要用到此功能. 解释:从指定的数据源中,指定的表,导入字段信息. 用途:在新建表单以前,表单已经有一个原型,或者已经有一个表,要以原来的数据表结构为模版,创建表单.比如我们要做一个人员入职流程,在实施以前,人员

Django form表单的数据加载问题

今天在项目中遇到一个问题,有个django增删改查的模板页面,其中的编辑页面使用自定的form来构建的显示内容. 表单的数据时从数据库中查询出来展示的,当修改数据库的内容后,form的展示的信息并没有修改.当重启后,form的数据重新加载. 查了许多资料,都没有对form表单数据的加载时间的解答. 从现象来看,form的数据的加载时在服务启动时,就加载了.代码如下: view.py def testform(req):     form = testForms.testForm()     pr

python测试框架&amp;&amp;数据生成&amp;&amp;工具最全资源汇总

xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本pytest - 成熟且功能强大的单元测试框架plugincompat - pytest的执行及兼容性插件nosetests - 让python测试更容易一点slash - python实现的单元测试框架 extensions 扩展proboscis - 仿TestNG扩展了unit

HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)

HTML5第8次课堂笔记 1.  模拟form表单提交数据:(get方式) <body> <formmethod="get"action="DataTest7"> <inputtype="text"name="uname"value="yang"id="myname"><br/> <inputtype="password&q

C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)

其原理是,利用winfrom模拟表单提交数据,将要提交的参数提交给网页,网页执行代码,得到数据,然后Winform程序将网页的所有源代码读取下来,这样就达到windows应用程序和web应用程序之间传参和现实数据的效果了. - 首先创建一个windows应用程序和web应用程序. - 在web应用程序中,将网页切换到源代码并把源代码中一些没用的代码删掉,只保留头部,在windows应用程序读取网页源码时,这些都会被一起读下来,但这些都是没用的数据,而且删掉没什么影响.需要保留的代码如下: - <

java 之 servlet如何获取表单的数据

servlet如何获取表单的数据 前端页面通过form表单的形式提交数据 服务端定义servlet接口 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcption { // 定义一个用户信息类 Users u = new User(); String username; String password; Date birthday;

神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 固定长度向量是编码器 - 解码器架构性能提升的瓶颈 --->   本文提出:允许模型自动(软)搜索 --- 与预测目标单词相关的源句( x 硬分段 ) 摘要 神经机器翻译是最近提出的机器翻译方法.与传统的统计机器翻译不同,神经机器翻译的目标是建立一个单一的神经网络,可以共同调整以最大化翻译性能.最近提出的用于神经机器翻译的模型一般是编码器 - 译