• GIZA++工具的使用介绍


    首先此处默认已经分词的中英文文件分别命名为chinese和english

    GIZA++是用来做词对齐的工具,早期版本是GIZA,其实GIZA++这个工具已经很老了,好多年都没有更新了

    实验准备

      2.1 GIZA++      

       GIZA++ 是由 Franz Och 开发的 GIZA 的一个扩展,并包含了许多其他的特点。

      2.2 mkcls

       mkcls 是由 Franz Och 开发的一个训练词语聚类的工具。——现在GIZA++和mkcls都托管在github上了https://github.com/moses-smt/giza-pp

      2.3 平行双语语料库

       汉英平行语料库,汉语语料需要切分,英语语料需要 tokenize

    实验步骤:

      最新版本的gcc之间make编译就好了,Makefile文件中有个地方需要修改,需要删除GIZA++v2/Makefile中的-DBINARY_SEARCH_FOR_TTABLE选项,再重新编译即可

      make 正常结束后,在 GIZA++-v2 和 mkcls-v2 目录下各生成了一些可执行文件。  

    a) 运行命令 ./plain2snt.out chinese english,将普通文本转化为 GIZA++ 格式 

       • 生成的文件 

         •chinese.vcb(english.vcb) 

          • 单词编号 

          • 汉语句子中的单词 

          • 单词的出现次数 

        •  chinese_english.snt(english_chinese.snt) 

          • 每个句子对出现的次数 

          • 汉语句子中的单词编号 

          • 英语句子中的token编号 

          注: 0是保留给特殊的“空”token。

       b) 运行命令 

        ./snt2cooc.out chinese.vcb english.vcb chinese_english.snt > chn_eng.cooc 

        ./snt2cooc.out english.vcb chinese.vcb english_chinese.snt > eng_chn.cooc 

        获得共线文件 

      3.3 构建GIZA++所需的mkcls文件 

       a) 运行命令 

        ./mkcls -pchinese -Vchinese.vcb.classes opt 

        ./mkcls -penglish -Venglish.vcb.classes opt 

        • 参数设置 

         • -n:表示训练迭代次数,默认1次 

         • -p:需要聚类的已分词文本

         • -V:输出信息 

         • opt:优化运行 

        • 生成的文件

         • chinese.vcb.classes(english.vcb.classes) 

          • 按字母表序的单词 

          • 单词词类 

         • chinese.vcb.classes.cats(english.vcb.classes.cats, ) 

          • 单词词类 

          • 对应词类的一组单词 

      3.4运行GIZA++ 

       a) 运行命令 . 

        ./GIZA++ -S chinese.vcb -T english.vcb -C chinese_english.snt -CoocurrenceFile chn_eng.cooc -outputpath c2e 

        ./GIZA++ -S english.vcb -T chinese.vcb -C english_chinese.snt -CoocurrenceFile eng_chn.cooc -outputpath e2c 

        • 生成文件(以汉-英为例)

         • Decoder.config 

          • 用于ISI Rewrite Decoder解码器 

         •  trn.src.vcb,trn.trg.vcb 

          • 类似于chinese.vcb和english.vcb文件 

         •  tst.src.vcb,tst.trg.vcb 

          • 空文件 

         • ti.final

          • 从英文到中文的词语对齐

          • 词语对齐通过token编号表示,并在每组数字后给出相应的对齐概率

          • 例如: 

          3 0 0.237882

          11 0 0.900132 

         • actual.ti.final 

          • 从英文到中文的词语对齐 

          • 词语对齐通过实际 token 表示,并在每组 token 后给出相应的对齐概率 

          • 例如: 

           polished 闪闪 1 

           pain 割 0.0173626

    • A3.final

          • 记录了在 IBM Model 3迭代训练后,每个句对的一个最佳对齐 (Viterbi Alignment)。

          • 第一行是一个可用于作为对齐可视化工具的标题的一个标签,包含训练的语料库中的有关该句编号的信息在训练语料,句子长度和对齐概率。

          • 第二行是目标语言,第三行是源语言,源语言中的每个记号之后是一个零或多个数字的集合,这些数字代表的与源语言记号连接的目标语言记号位置。

         • perp

          • 在训练的最后生成,提出了每次训练迭代的困惑度值的列表

         • a3.final

          • 包含的形式如下的表

          • i j l m p ( i / j, l, m)

          • j = position of target sentence

          • i = position of source sentence

          • l = length of the source sentence

          • m = length of the target sentence

          • p( i | j, l, m) = is the probability that a source word in position i is moved to position j in a pair of sentences of length l and m   

         • d3.final

          • 类似于a3.final文件,只是 交换了i 和 j 的位置

         • n3.final

          • 源语言 token 的 fertility 分别为 0,1,…,n 时的概率表,形式如下:

          source__id p0 p1 p2 …. pn,p0 是fertility为0时的概率

          • 例如:

          1 0.475861 0.282418 0.133455 0.0653083 0.0329326 0.00844979 0.0014008

          10 0.249747 0.000107778 0.307767 0.192208 0.0641439 0.15016 0.0358886

          11 0.397111 0.390421 0.19925 0.013382 2.21286e-05 0 0

          12 0.0163432 0.560621 0.374745 0.00231588 0 0 0

         •  t3.final

          • IBM Model 3训练后的翻译表,形式如下:

           s_id t_id P(t_id/s_id)

           s_id:源语言token编号

           t_id:目标语言token编号

           P(t_id / s_id):源语言token翻译为目标语言token的概率

         • D4.final

          •  IBM Model 4的distortion表

         • gizacfg

          • 包含训练当中所用的所用参数设置

          • 训练可以精确复制

  • 相关阅读:
    解决-webkit-box-orient: vertical;(文本溢出)属性在webpack打包后无法编译的问题
    消息框尖尖
    表单提交
    昨天看了一个大神的fix类,清晰了然
    使用cross-env解决跨平台设置NODE_ENV的问题
    axios 在Vue全局引入的方法
    vue自定义指令
    AMD/CMD/CommonJs到底是什么?它们有什么区别?
    artDialog.js的使用
    delegate-使用笔记
  • 原文地址:https://www.cnblogs.com/hit-joseph/p/8086413.html
Copyright © 2020-2023  润新知