我正在尝试使用 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/

10-12 18:49