四、常见错误

  1. crf++linux 上编译报错:fatal error: winmain.h: No such file or directory

    • 原因:crf++考虑了跨平台,而在linux 上找不到该文件。

    • 解决方案:

      1. sed -i '/#include "winmain.h"/d' crf_test.cpp
      2. sed -i '/#include "winmain.h"/d' crf_learn.cpp
  2. 运行 crf_learn ,提示找不到libcrfpp.so.0cannot open shared object file: No such file or directory

    • 原因:没有链接到库文件。

    • 解决方案:

      1. export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
  3. 运行 crf_learn ,提示:inconsistent column size

    • 原因:语料库中,出现了异常的标记行。

      • crf++ 要求所有行的列数都相同。如果某些列出现了不同的列数,则报错。
      • crf++\t 或者空格分隔各列,以空行来分隔sentence
  4. 运行 crf_learn ,输出为: reading training data: tagger.cpp(393) [feature_index_->buildFeatures(this)] 0.00 s

    • 原因:模板文件编写不正确。

      假设一共有 N 列,则列编号必须为0~N-2 ,其中第 N-1 列为标签列,不能进入模板中。

  5. 编译python API 时报错:fatal error: Python.h: 没有那个文件或目录

    • 原因:没有安装python3.6-dev

    • 解决方案:

      1. sudo apt-get install python3.6-dev