我正在尝试使用 Charniak Parser(而不是 reranker)来解析一个句子。我的意思是我有这样一句话:
It is good to meet you.
我需要它被 Charniak 解析(我坚持使用 Charniak 解析器,因为之后我将使用 LTH 系统和基于 Charniak Parser 的 LTH 工作)。
所以,结果将是这样的:
(s (XP(PRP I) (V is) ....)
但是,当我尝试为 Charinak Parser 运行“make”命令时,我遇到了以下错误:
BChartsm.c LeftRightGotIter does not name a type
BChartsm.c in member function double Bchart::pHypgt(const std::string&, int)
BChartsm.c strpbrk was not declared in this scope
BChartsm.c in member function float Bchart::coputeTgT(int,int)
BChartsm.c globalGi was not declared in this scope
我尝试使用 Madnani 开发的补丁,但它对我不起作用。我也尝试使用 this solution ,但我无法理解最后一部分。我运行了所有
sudo dpkg ...
代码,但之后我不明白我应该做什么。同时,我会说我使用的是 Ubuntu 11.04,我的操作系统是 64 位的。
谁能向我解释我如何解决这些问题?
最佳答案
您正在编译 C++ 代码,它以某种方式驻留在“.c”文件中。 GCC 将它们视为 C 源代码,而不是 C++。
您必须使用 GCC 的“-x”选项来强制识别 C++ 源代码。
gcc -x c++ <your_source>
既然您在谈论 Makefile,请查找 CFLAGS 选项并在那里添加
-x c++
选项。关于c++ - Charniak 解析器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11647448/