Mac OSX下安装配置SRILM语言模型训练工具

来源:互联网 发布:java类设计工具 编辑:程序博客网 时间:2024/05/01 11:30

1.安装依赖软件包

  • C/C++ compiler:编译器gcc 3.4.3及以上版本;
  • Tcl toolkit: 可嵌入式脚本语言。用于脚本编程和测试,这里是为了SRILM的测试。此处需要7.3及以上版本,本例用的是tcl8.5(貌似是系统自带的,安装前可在终端输入tclsh指令,若输出%,则表示系统已安装tcl,输入exit退出即可;若未安装,则前往http://www.tcl.tk/software/tcltk/ 下载安装);
  • GNU make :构建和管理工程的工具,解释Makefile里的指令,描述了整个工程所有文件的编译顺序和编译规则。这里是为了控制 SRILM的编译和安装;
  • GNU gawk:GNU所做的awk程序语言。对于文字资料的修改、对比、抽取等处理,使用c或passcal等不方便且费时,awk能够以很短的程序完成。这里是处理SRILM里的一些脚本文件;
  • GNU gzip:使用C语言编写的一种解压缩软件。这里是为了使 SRILM 能够处理.Z和.GZ后缀的压缩文件;
  • bzip2(可选):数据压缩软件,压缩效率更高。这里是使SRILM能处理.bz2后缀的压缩文件;
  • P7zip(可选):数据压缩软件。这里是使SRILM能处理7-Zip的压缩文件;
  • xz(可选):数据压缩软件。这里是使SRILM能处理xz的压缩文件
  • csh:Unix shell的一种

    以上软件包安装与否可通过在终端直接输入软件名称,若提示软件版本等信息则表明系统已安装,否则需要安装。既可利用homebrew、pip等自动包管理器进行安装,也可到SRILM的下载页下载源码,自行编译安装,以下为下载地址:
    http://www.speech.sri.com/projects/srilm/download.html


2.安装SRILM

2.1下载SRILM压缩包

  • 下载链接为http://www.speech.sri.com/projects/srilm/download.html ,当前版本为1.7.2;

2.2 创建安装目录,解压安装包

  • 假设安装目录为:/Users/xxx/srilm-1.7.2,将下载的压缩包解压至/Users/xxx/srilm-1.7.2目录下;

2.3 修改Makefile文件

  • 打开srilm-1.7.2目录下的Makefile文件;

  • 找到此行:
    # SRILM = /home/speech/stolcke/project/srilm/devel
    另起一行输入SRILM = /Users/xxx/srilm-1.7.2
    -注1:此行主要用于告知srilm的安装路径;
    -注2:有些Linux系统下的安装教程提到需要注释掉
    MACHINE_TYPE := $(shell $(SRILM)/sbin/machine-type)一行,并另起一行指定机器类型,目的是告诉Makefile之后要使用/Users/xxx/srilm-1.7.2/common/Makefile.machine.macosx文件中的配置。但在实际的安装过程以及srilm源码包根目录下的INSTALL安装说明中发现,即使不输入MACHINE_TYPE := macosx也并未发现异常情况(欢迎提出异议,进一步探讨)。

2.4 修改/Users/xxx/srilm-1.7.2/common /Makefile.machine.macosx文件

  • 找到以下两行:
    CC = cc $(GCC_FLAGS)
    CXX = c++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES

    修改为:
    CC = /usr/bin/gcc $(GCC_FLAGS)
    CXX = /usr/bin/g++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES

    注:此处用于指定编译器位置
  • 找到:
    TCL_INCLUDE = -I/usr/include
    TCL_LIBRARY = -L/usr/lib -ltcl

    修改为:
    TCL_INCLUDE = -I/usr/include
    TCL_LIBRARY = /usr/lib/libtcl8.5.dylib

    -注1:TCL_INCLUDE主要用于指示tcl头文件(.h)所在的路径;
    -注2:TCL_LIBRARY主要用于指示tcl动态链接库文件的位置;
    -注3:TCL配置须保证tcl已安装,若未安装,可添加 NO_TCL = X;
  • 找到:GAWK = /usr/bin/awk
    修改为:GAWK = /usr/bin/gawk

2.5 编译

  • 返回/Users/xxx/srilm-1.7.2/目录,在终端输入命令:make World
  • 如果依赖包不缺失的话,应该可以正常编译通过,并在/Users/xxx/srilm-1.7.2/bin以及/Users/xxx/srilm-1.7.2/bin/macosx路径下产生一系列的可执行文件。

2.6 测试

  • 进入安装目录/Users/xxx/srilm-1.7.2/,在终端输入命令:make test,等待一段时间,如果出现 IDENTICAL,就证明 SRILM 编译成功。

2.7 配置环境变量

  • 为了实现在任意路径下对srilm各模块的调用、以及srilm帮助文档的查询,需对环境变量进行配置,主要做法是在/etc/profile文件中添加PATH和MANPATH,具体命令如下:
  • sudo vim /etc/profile根据提示输入系统密码;
  • 英文输入法状态下,点击键盘I键进入编辑状态,在profile文件末尾中添加以下两个export语句:
    export PATH=$PATH:/Users/xxx/srilm-1.7.2/bin:/Users/xxx/srilm-1.7.2/bin/macosx
    export MANPATH=$MANPATH:/Users/xxx/srilm/man
  • 按下Esc键;按下:键,输入wq!三个字符,退出vim编辑状态并保存对profile文件的修改;
  • 终端输入source /etc/profile使得对环境变量的配置立即生效。

2.8 测试环境变量是否配置成功

  • 在任意路径下,终端输入命令ngram,出现”need at least an -lm file specified”的提示;输入man ngram,出现下图的帮助界面。至此,OS X下的SRILM安装配置成功~~ Hooray! ~Enjoy~
    这里写图片描述

P.S. 水平太low,中途历经各种波折,低级错误不断,折腾半天终于成了,总结梳理出来方便大家交流学习,欢迎各位老师批评指正~~

未来的路还很长,~~ (๑•̀ㅂ•́)و✧加油

0 0
原创粉丝点击