Ubuntu 64bit系统下SRILM的配置

依赖软件包(先进行):

1.c/c++ compiler:编译器gcc 3.4.3及以上版本,我的是gcc 4.4

2.GNU make:构建和管理工程的工具,解释Makefile里的指令,描述了整个工程所有文件的编译顺序和编译规则。这里是为了控制SRILM的编译和安装。

3.GNU gawk:GNU所做的awk程序语言。对于文字资料的修改,对比,抽取等处理,使用c或passcal等不方便且费时,awk能够以很短的程序完成。这里是处理SRILM里的一些脚本文件。

  sudo apt-get install gawk

4.GNU gzip:使用c语言编写的一种解压缩软件。这里是为了使SRILM能够处理.Z和.GZ后缀的压缩文件。

5.bzip2:数据压缩软件,压缩效率更高。这里是使SRILM能处理.bz2后缀的压缩文件。

6.P7zip:数据压缩软件。这里是使SRILM能处理7-zip的压缩文件。

  sudo apt-get install p7zip-rar

7.Tcl可嵌入式脚本语言。用于脚本编程和测试。这里是为了SRILM的测试。最好安装tcl8.x和tcl8.x-dev。

  http://blog.csdn.net/zqt520/article/details/7342171

8.csh:Unix shell的一种。(这个很重要,安装过程中有个问题困扰了很久,最后发现是csh没有安装的原因)。

http://blog.sina.com.cn/s/blog_78699cbf010169vi.html

安装过程:

一.下载SRILM.tgz压缩包

安装包服务器路径:192.168.86.24  /home/research/ghshan/test/moses/tools/srilm.tgz,把压缩包解压到该目录。我这里使用的是1.7.0版,安装目录是:/home/research/ghshan/test/moses/tools/srilm

二.修改Makefile文件(srilm目录下)

1.找到此行: # SRILM = /home/speech/stolcke/project/srilm/devel,另起一行输入srilm的安装路径,SRILM = /home/research/ghshan/test/moses/tools/srilm或者SRILM = $(PWD)(我使用的是前者)

2.找到此行:MACHINE_TYPE := $(shell $(SRILM)/sbin/machine-type),在其前加#注释掉,并另起一行输入:MACHINE_TYPE := i686-m64。

因为我是64位机器(使用uname -m 可以查看),此行告诉Makefile之后要看的设置在/home/user/srilm/common /Makefile.machine.i686-m64中。

三.把Ubuntu系统的相关设定告诉Makefile,即用编辑器修改 /home/research/ghshan/test/moses/tools/srilm/common目录下的文件:Makefile.machine.i686-gcc4

1.找到:

GCC_FLAGS = -mtune=althon64 -Wall -Wno-unused-variable -Wno-uninitialized(cpu型号)

CC = $(GCC_PATH)gcc $(GCC_FLAGS) -Wimplicit-int

CXX = $(GCC_PATH)g++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES

这里是为了告诉SRILM系统使用的compiler(c和c++),符合安装情况,不需要修改。

athlon64 -m64代表机器cpu的相关参数,注意根据情况修改,64说的是64bit机器;

2.找到:

# Tcl support (standard in Linux)

TCL_INCLUDE =

TCL_LIBRARY =

修改为 # Tcl support (standard in Linux)

TCL_INCLUDE =

TCL_LIBRARY =

NO_TCL = X

上面两行标红的就是什么都不用给

3.找到:

GAWK = /usr/bin/awk

修改为:GAWK = /usr/bin/gawk

 注:各系统中这些软件的安装情况可能不同,查找软件的安装位置,可使用命令:which is gcc或which is g++或which is gawk等。

 1.编译srilm

切换到/home/research/ghshan/test/moses/tools/srilm/,执行

  make World

2.修改环境变量

输入命令:sudo gedit /etc/profile

找到:

if [ "$PS1" ]; then

 if [ "$BASH" ]; then

  PS1=’u@h:w$ ‘

  if [ -f /etc/bash.bashrc ]; then

   . /etc/bash.bashrc

  fi

 else

  if [ "`id -u`" -eq 0 ]; then

   PS1=’# ‘

  else

   PS1=’$ ‘

  fi

 fi

fi

 在其后另起一行输入:

export PATH=/home/research/ghshan/test/moses/tools/srilm/bin/i686-m64/:/home/research/ghshan/test/moses/tools/srilm/bin/:$PATH

3.测试

  编译通过不等于编译成功,必须利用 SRILM 提供的测试模块进行测试,进入 SRILM 根目录

     make test

(SRILM 从1.5.10开始,在 lm、flm、lattice文件夹下各有一个test文件夹)

出现如下信息:

.........

*** Running test ngram-prune ***

11.17user 2.35system 0:14.20elapsed 95%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+15816outputs (0major+31653minor)pagefaults 0swaps

ngram-prune: stdout output IDENTICAL.

ngram-prune: stderr output IDENTICAL.

*** Running test ngram-server ***

0.21user 0.72system 0:06.56elapsed 14%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+8outputs (0major+2559minor)pagefaults 0swaps

ngram-server: stdout output IDENTICAL.

ngram-server: stderr output IDENTICAL.

*** Running test ppl-counts ***

0.10user 0.24system 0:00.32elapsed 104%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+16outputs (0major+4724minor)pagefaults 0swaps

ppl-counts: stdout output IDENTICAL.

ppl-counts: stderr output IDENTICAL.

*** Running test tagged-ngram ***

0.00user 0.05system 0:00.11elapsed 51%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+24outputs (0major+1789minor)pagefaults 0swaps

tagged-ngram: stdout output IDENTICAL.

tagged-ngram: stderr output IDENTICAL.

*** Running test vocab-aliases ***

0.27user 0.24system 0:01.65elapsed 31%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+16outputs (0major+5845minor)pagefaults 0swaps

vocab-aliases: stdout output IDENTICAL.

vocab-aliases: stderr output IDENTICAL.

需要等待一段时间,如果出现多是IDENTICAL,很少的DIFFERS,就证明srilm编译成功了!

应用:

进入/home/research/ghshan/test/moses/tools/srilm/lm目录

如果没有配置/etc/profile,执行方式如下:

./bin/i686-m64/ngram-count -text europarl-v3b.en -order 3 -write europarl.en.count

如果配置了,可以直接执行

ngram-count -text europarl-v3b.en -order 3 -write europarl.en.count

其中参数-text指向输入文件,此处为europarl-v3b.en;-order指向生成几元的n-gram,即n,此处为3元;-write指向输出文件,此处为europarl.en.count

注意:由于srilm默认是使用空格做份分隔符,所以用于中文时需要在每个字中间加上空格;

可参考:http://hi.baidu.com/keyever/item/8fad8918b90b8e6b3f87ce87

以上都经过测试过

主要参考:

http://www.52nlp.cn/ubuntu-moses-platform-build-process-record

http://wenku.baidu.com/link?url=Bjss8loebr1EBxmabtnz1PGFrrBj_C0qRJM-uTfbRjjVh5l7wYliWF7Fk58jf0Adrgl0dln2RoHSPuOsQfKnHbaWse9QNDiui6jt6bGNfSW

http://blog.csdn.net/zhoubl668/article/details/7759370

ubuntu 编译安装 srilm的更多相关文章

  1. Ubuntu编译安装nginx,php,mysql

    摘要: 整理的Ubuntu编译安装nginx,php,mysql的步骤,主要来自对驻云的sh-1.4.1中脚本的整理,随时代进步,内容中的软件或者命令请自行更新 目录准备 创建用户 userdel w ...

  2. Ubuntu 编译安装 nginx

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

  3. Ubuntu编译安装php7.4

    Ubuntu编译安装php7.4  [root@ubuntu2004 php-7.4.30]#apt install gcc libssl-dev libxml2-dev libsqlite3-dev ...

  4. Ubuntu 编译安装 Linux 4.0.5 内核,并修复 vmware 网络内核模块编译错误

    . . . . . 今天把 Ubuntu 14.04 升级到了最新的 4.0.5 的内核版本,本来不打算记录下来的,但是升级的过程中确实遇到了一些问题,所以还是记录下来,分享给遇到同样问题的猿友. 先 ...

  5. 【转】Ubuntu编译安装mysql源码

    主要参考了下面两篇文章 http://forum.ubuntu.org.cn/viewtopic.php?t=330121 http://www.linuxidc.com/Linux/2011-09/ ...

  6. Ubuntu 编译安装 OpenCV 3.1

    目标系统:Ubuntu 16.04-64bit OpenCV 版本:opencv-3.1.0 安装步骤 安装 cmake.sudo apt-get isntall cmake cmake-qt-gui ...

  7. ubuntu编译安装php7遇到的问题及解决方案

    configure: error: Cannot find OpenSSL's <evp.h> 这个可以在configure的时候,指定openssl的路径,查看openssl的安装路径: ...

  8. Ubuntu编译安装nginx以及配置自动启动

    本文主要介绍ubuntu如何编译安装nginx以及遇到的问题 和 配置系统自动启动服务 查看操作系统版本 cat /etc/issue  Ubuntu 18.04.3 LTS \n \l    更改镜 ...

  9. Ubuntu编译安装HAprox+Keepalived+MySQL负载高可用架构(结合Docker容器配置)

    系统环境:Ubuntu16.04(Docker容器) 架构环境: Keepalived/HAproxy MASTER: 172.17.0.4 Keepalived/HAproxy BACKUP: 17 ...

随机推荐

  1. unittest可能面临的问题以及解决方法

    问题1:用例的执行顺序 当使用unittest.main()时,用例的执行是按照ascall值的顺序来执行的,所以如果使用main()方法来执行用例的话,那么就需要通过命名来限制执行顺序,比如想要先执 ...

  2. php支付宝在线支付接口开发教程【转】

    php支付宝在线支付接口开发教程 这篇文章主要为大家详细介绍了php支付宝在线支付接口开发教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   1.什么是第三方支付 所谓第三方支付,就是一些和各 ...

  3. android mvvm

    android studio 需要gradle 1.5.0以上才支持 dependencies { classpath 'com.android.tools.build:gradle:1.5.0'} ...

  4. google高级搜索

    ext:php program_listing intitle:MythWeb.Program.Listing inurl:preferences.ini “[emule]” intitle:”Ind ...

  5. 读javascript高级程序设计07-引用类型、Object、Array

    一.引用类型 ECMAScript是支持面向对象的,可以通过引用类型描述一类对象所具有的属性和方法. 创建对象实例的方法时是用new 操作符加构造函数:var p=new Person(). 二.Ob ...

  6. Windows Store App 全球化:在XAML元素中引用字符串资源

    在应用程序中可以通过XAML元素和后台代码两种方式引用资源文件中的字符串资源.本小节先讲述如何在XAML元素中引用字符串资源的相关知识点. 在XAML元素中可以通过使用x:Uid属性来引用资源文件中的 ...

  7. WCF初探-15:WCF操作协定

    前言: 在前面的文章中,我们定义服务协定时,在它的操作方法上都会加上OperationContract特性,此特性属于OperationContractAttribute 类,将OperationCo ...

  8. Gridview布局界面练习Simple Adapter

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZcAAAJcCAIAAAC6w36wAAAgAElEQVR4nOy953YbS5KuvVsiTFWlz6

  9. DeepLearning之路(二)SoftMax回归

    Softmax回归   1. softmax回归模型 softmax回归模型是logistic回归模型在多分类问题上的扩展(logistic回归解决的是二分类问题). 对于训练集,有. 对于给定的测试 ...

  10. SharePoint开发——利用CSOM逐级获取O365中SharePoint网站的List内容

    博客地址:http://blog.csdn.net/FoxDave 本文介绍如何利用SharePoint客户端对象模型(.NET)逐级获取Office 365网站中List的内容,仅仅是示例,没有 ...