四、常见错误
crf++
在linux
上编译报错:fatal error: winmain.h: No such file or directory
。原因:
crf++
考虑了跨平台,而在linux
上找不到该文件。解决方案:
sed -i '/#include "winmain.h"/d' crf_test.cpp
sed -i '/#include "winmain.h"/d' crf_learn.cpp
运行
crf_learn
,提示找不到libcrfpp.so.0
:cannot open shared object file: No such file or directory
。原因:没有链接到库文件。
解决方案:
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
运行
crf_learn
,提示:inconsistent column size
。原因:语料库中,出现了异常的标记行。
crf++
要求所有行的列数都相同。如果某些列出现了不同的列数,则报错。crf++
以\t
或者空格分隔各列,以空行来分隔sentence
。
运行
crf_learn
,输出为:reading training data: tagger.cpp(393) [feature_index_->buildFeatures(this)] 0.00 s
。原因:模板文件编写不正确。
假设一共有
N
列,则列编号必须为0~N-2
,其中第N-1
列为标签列,不能进入模板中。
编译
python API
时报错:fatal error: Python.h: 没有那个文件或目录
。原因:没有安装
python3.6-dev
解决方案:
sudo apt-get install python3.6-dev