c++ - Charniak 解析器错误

标签 c++ parsing charniak-parser

我正在尝试使用 Charniak Parser(不是 reranker)来解析一个句子。我的意思是我有这样一句话:

It is good to meet you.

而且我需要它被Charniak解析(我坚持使用Charniak解析器,因为之后我将使用LTH系统,LTH基于Charniak解析器工作)。

所以,结果会是这样的:

(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/

相关文章:

c# - 与字符串连接时,字符串不会解析为 Int32

bash - 在 Windows 64 位 :/usr/bin/sh: -c: line 0: syntax error near unexpected token `make` 的 cygwin 上使用 `(' 时出错

c++ - 继承错误: expected class-name before '{' token

python - 通过给出不是当前日期的引用日期作为参数来从文本中提取日期

c++ - 参数包展开顺序

parsing - 解析/etc/resolv.conf失败

c++ - 编译 Charniak 的解析器

c++ - 抽象调用以组合类 vector 的结果

c++ - 如何计算文本文件中的字符数