zoukankan      html  css  js  c++  java
  • Google 翻译,梦想与现实的距离有多远

    在信息纷繁如大洋般浩浩的互联网时代,操持各自语言的人们汇聚网络,言之纷纷,书之不息,各类信息无时不发,无处不在……不论是经典著述、长篇大论,抑或巧思短文、灵感的火花……似乎,互联网承载和传播了这个星球上人类的所有智慧。然而,一个简单的事实让信息携带智慧流通全球还依然只是一个梦想——即:不同语言之间无法直接沟通。为解决这个问题,机器翻译随科技的发展应运而生,并不断发展。

      前面的废话

      曾经有一个梦想——希望能轻松读懂英文,至少在看一篇没有太多文学色彩的技术文章时,可以明白个八九不离十。

      也曾经不自量力——在借助机器翻译求学外文失败之后,试图研究机器翻译应当如何进行……

      世界发展真快,失望、怅然与自知无能为力的几年虚度,曾经的渴望和若有所研的心得早已抛诸天外。直至几年前,Google 推出了翻译服务,经初步试用,如果要求不高的话,感觉翻译效果也算是不错!(注:不能用专业的人工翻译和机器自动翻译比质量)。免费使用,及时快速,在信息飞速流动的互联网时代,有这样的免费服务已经很知足了。(其实很想说一声谢谢!)

      机器翻译的质量

    Google翻译

      一个显而易见的前提是,机器翻译不可能与人工翻译相比。在目前的技术条件下,一般认为机器翻译如果有 60% 以上的准确率就基本可用了。目前机器翻译已经发展到“基于短语的翻译,并正在融合句法信息,以进一步提高翻译的精确性”(摘自维基百科“机器翻译”词条)。从对 Google 翻译服务的试用来看,其对简单短句、短语、以及习惯用语的翻译都还不错,翻译包含了对句法词序的转换处理。

      那么,现阶段我们是否可以期待计算机对普通长句也有比较好的翻译效果呢?

      简单的答案是:No!

      复杂一点的答案也许是:我们可以有这样的期望吗?

      或许,我们可以有这样的期望。但我们需要作出一些付出!请细想一下,我们通常所见的那长长的句子,它是否可以被分解为多个短句呢?如果短句与短句之间有语法上的主次关系,它们是否可以被包装成一个父级的简单句呢(即视短句仅为一个占位单元)?如果答案是肯定的,那长句就可以拆解封装成简单句的组合了(可能有多层)。

      这是无意中尝试的一个例子,请看:

      原文:“为什么计算机合成语音多数是女声。”
      Google 译成英文:“Why do the majority of female computer synthesized speech.”
      用该译文译回中文:“为什么大多数女性电脑合成语音。”

      一正一反两次互译,含义已经相去甚远了。但我们尝试一下分解策略:

      中文分解                Google 译文
      -------------------------------------------------
      1. 计算机合成语音       Computer-synthesized voice
      2. 女 声                Female voice  // 注:原译为 Girl,应是个 Bug,中间空一格即可
      3. 多数                 Most
      4. 为什么 X 是 Y        Why X is Y   // X 和 Y 是占位符,此处是取其语法翻译

      组合后译文:“Why <Computer-synthesized voice> <Most> is <Female voice>”
      去掉尖括号:“Why Computer-synthesized voice Most is Female voice.”
      用该译文译回中文:“为什么电脑合成的声音大多是女性的声音。”

      效果如何! 有种惊艳的感觉吧?

      再来一句试试:
      原文:“互联网以英文为主是不争的事实,”
      Google 译成英文:“Internet in English is an indisputable fact,”
      用该译文译回中文:“在英国的互联网是一个不争的事实,”

      中文分解                Google 译文
      -------------------------------------------------
      1. 互联网               Internet
      2. 英文                 English
      3. XX 以 YY 为主        XX to YY-based
      4. XX 是不争的事实      XX is an indisputable fact

      组合得译文:“Internet to English-based is an indisputable fact,”
      用该译文译回中文:“以英语为主的互联网是一个不争的事实,”

      与直接回译的差别是不是有点大,与原文的意思是不是基本符合?

      看到这里,是否,我们真的可以有某些期望? 或许,这是一个需要努力但并非太多努力就可接近的目标! 请抱持思考和理性批评的心态看待下面的解说。

      长句拆解,短句组合构造长句译文

      一般来说,对于具有较深文学色彩的文字,因大多包含隐喻,上下文环境依赖等,机器翻译十分困难。但对于普通的文法较为规范的描述性文章(如技术类说明书,使用手册等),如果句法足够简单,则机器翻译的表现已很不错。

      如上所见,如果人工稍作参与,通过长句分解,机器翻译整篇文章或许也会有比较理想的结果。这里,我们需要对长句进行逻辑判断和拆解,如果必要,构造父级的句法特征句(如“XX 以 YY 为主”,XX 为占位符,代表相应子句,用于语法转换),则人工参与的并不多,但效果却会很大。

      对原文进行拆解标识的意义

      或许,你认为人工参与机器翻译并不划算,太低级,理想的机器翻译应当是完全的无人工自动执行。确实,这是人人期盼理想状态,但那离现实似乎太过遥远(个人看法)。

      表面上看,一旦人工参与,任何机器无法解决的智能问题都会化解,所以,人工参与不是解决问题的办法——这仅是简单地看问题。

      我想说,这观点低估了人脑智能的复杂性,对机器智能寄予了过高的期望。另外,这也忽略了一个重要事实,即——分析拆解工作其实是“一次性”的。当我们对原文做好语法标识后,就可以撒手不管它将要被翻译到何种语言了。注意!这里没有指明何种语言,因为——这适用于翻译到任何一种语言——所作与目标语言无关,标识仅仅是说明了自己。

      还有一点,精通一门语言易,精通多门语言难,通晓一门语言的人很多,通晓多门语言的人很少。任何一个人,只要母语多少有些修养,就可以标识用母语写的文章,从而帮助作者的文章得到翻译,或作者自行标注,让自己的文章可以直接被翻译。人机结合,这对翻译人员的门槛降到了最低——好宽广的群众基础啊! 梦想,是否有实现的可能?

      技术性的个人研究分享

      很浅薄,请不吝赐教……

      从上面的分析看,借助于 Google 翻译服务的 API,现阶段就可以编写并不复杂的程序,实现可行的通篇文章机器翻译,但前提条件是,原文需要被适当标识。个人认为标识文章的语法应当尽量简单,以利于大众化普及,由于机器翻译服务已有初步的智能,简单标识已经可行。

      笔者设计的标识逻辑有 3 层,共 7 个标识字,如下:

          顶层: 子句,标识字 clause
          中层: 短语,标识字 phrase,包含常用习语、俗语、俚语等
          底层: 单词,标识字 名词 word-n,动词 word-v。
          
          另外两个特殊词,人名 names,术语 term,一般情况下保持为不翻译,需标识出来。

      如果仅针对长句拆解,底层的单词标注其实已经不需要,这里加入是方便将来机器对短句进行更加准确的判断。

      标识例子1(Html 代码,用 class 属性表达):
          <span class="syntax">
              <span class="phrase">为什么</span>
              <span class="clause">
                  <span class="word-n">计算机</span><span class="word-v">合成</span><span class="word-n">语音</span>
                  // 注:这一句其实不必拆解,它可能已成为一个术语
              </span>
              <span class="clause">
                  多数<span class="word-v">是</span><span class="phrase">女声</span>
              </span>,
          </span>

      标识例子2
          <span class="syntax">
              <span class="clause">其中一个<span class="word-n">答案</span></span>
              可能在于
              <span class="clause">
                  人类的<span class="phrase">生物机制</span>
              </span>。
          </span>

      注:
      1. 代码最外围用 syntax 包含,表示内部为语法标识。
      2. 并非所有的文字都需要标注,将句子切分以表达出逻辑关系即可。
      3. 一些介词、助词之类的字是语法标志词,不需要标注。

      抛砖引玉,期待探讨!谢谢。

      来源:读者原创投稿,作者:乙謌

  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/helenR/p/googletranslate.html
Copyright © 2011-2022 走看看