在安装HPCA前,需要确定环境配置。
This project requires:
- Cross-platform Make (CMake) v2.6+
- GNU Make or equivalent.
- GCC or an alternative, reasonably conformant C++ compiler.
- Zlib v1.2.5
- OpenMP API (optional)
- Doxygen (in order to make documentation which is optional.
安装Doxygen,并安装Graphviz。
在MAC的系统中,主要需要CMame下载并安装,同时在~/.bash_Profile中添加
export PATH="/Applications/CMake.app/Contents/bin:$PATH
GCC以系统自带的clang形式存在,但是由于版本较低,需要重新加载,并在~/.bash_Profile中添加
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export PATH="/usr/local/Cellar/gcc/7.3.0_1/bin:$PATH"
OpenMP在高版本的GCC中已经支持,所以需要确定cmake指定到最新的GCC中。因而在使用cmake编译时,需要输入以下语言。
./configure #此前,确定进入目标文件夹内
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
cmake /path/to/your/project #/path/to/your/project指的是make后的文件存放位置
make #可能会出现报错,具体问题如下
最后,输入
sudo make install
需要注意的是,在make时,可能会遇到以下报错
make[2]: *** [src/CMakeFiles/eval.dir/eval.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/eval.dir/all] Error 2
make: *** [all] Error 2
这时,需要检查具体错误,例如
/Users/xxx/xxx/hpca-master/src/eval.cpp:231:68: error:ISO C++ forbids comparison between pointer and integer [-fpermissive]
while ((buffer = string_copy(buffer, ptr_data, &itr, '\n')) != '\0')
/Users/xxx/xxx/hpca-master/src/eval.cpp:138:68:error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
while ((buffer = string_copy(buffer, ptr_data, &itr, '\n')) != '\0')
针对Mac系统,需要将所指文件中第231和138行'\n'改为“\n"。而Lunix系统中不会出现报错,不需要改动。
顺利安装后,就可以使用了。在具体处理前,需要通过PTBTokenizer来对语料进行预处理,具体操作见另一篇博文。
然后,进行HPCA相关操作。在这一步之前,需要添加环境变量,否则会出现以下报错:
preprocess: command not found
具体操作如下:
打开terminal,
vim .bash_Profile
输入
export PATH="~/xxx/hpca-master/bin:$PATH"
关闭文件后,在命令行中输入
source .bash_Profile
接下来就可以进行后续操作了。
preprocess
options:
-lower <int>
: Lowercased? 0=off or 1=on (default)-digit <int>
: Replace all digits with a special token? 0=off or 1=on (default)-input-file <file>
: Input file to preprocess (gzip format is allowed)-output-file <file>
: Output file to save preprocessed data-gzip <int>
: Save in gzip format? 0=off (default) or 1=on-threads <int>
: Number of threads; default 8-verbose <int>
: Set verbosity: 0=off or 1=on (default)
preprocess -input-file ~/xxx/xxx/comments-token.txt -output-file ~/xxx/xxx/comments-clean.txt -lower 1 -digit 1 -verbose 1 -thread 8 -gzip 0
其他操作按照作者README.md中的指示即可完成。
需要注意的是对于eval,由于系统中可能已经存在eval的变量名,因而需要在xxx/hpca-master/bin/中,找到eval,重新命名为evalu,这样,可以使得evalu语法正确。最终输入
evalu -word-file ~/xxx/xxx/comment/words.txt -vocab-file ~/xxx/xxx/comment/target_words.txt -ws353 1 -rg65 1 -rw 1 -syn 1 -sem 1 > ~/xxx/xxx/comment/words_eval.txt
参考
http://blog.csdn.net/haohaibo031113/article/details/72833327