因为课程的缘故,需要和同学一起折腾一个统计机器翻译工具出来。我的工作就是翻译模型构建这一步。根据网络上的说法,我使用了GIZA++这个工具。以下内容参考了如下资源:
翻译系统搭建,这个资料算是比较全面的,但是在没有说明应该使用哪个版本的GIZA++和mkclsGIZA++实验报告,比上面文档更加详细(翻译模型这一块),也给出GIZA++的版本和一些解决方案,但是我没有使用,但是命令都是采用这些这个实验报告里面提供的命令ti.final等文件未生成的解决方法,Issue 29,解决方案就是采用1.0.3的giza++旧的版本的giza++运行时buffer overflow,Issue 11,解决方案是修改giza++的file_spec.h
*** file_spec.h/07/10 21:38:391.1--- file_spec.h/07/13 11:37:21****************** 37,49 ****struct tm *local;time_t t;char *user;! char time_stmp[17];char *file_spec = 0;t = time(NULL);local = localtime(&t);! sprintf(time_stmp, "%02d-%02d-%02d.%02d%02d%02d.", local->tm_year, (local->tm_mon + 1), local->tm_mday, local->tm_hour, local->tm_min, local->tm_sec);user = getenv("USER");--- 37,49 ----struct tm *local;time_t t;char *user;! char time_stmp[19];char *file_spec = 0;t = time(NULL);local = localtime(&t);! sprintf(time_stmp, "%04d-%02d-%02d.%02d%02d%02d.", 1900 + local->tm_year, (local->tm_mon + 1), local->tm_mday, local->tm_hour, local->tm_min, local->tm_sec);user = getenv("USER");
NOTE:上面的步骤中漏掉了中英文的分词,这一部分的工作是后面工作的基础!!!