Charniak Parser错误

时间:2012-07-25 10:11:27

标签: c++ parsing charniak-parser

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

It is good to meet you.

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

因此,结果将是:

(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位的。

任何人都可以向我解释如何解决问题吗?

2 个答案:

答案 0 :(得分:3)

您正在编译C ++代码,并且它以某种方式驻留在“.c”文件中。 GCC将它们视为C源,而不是C ++。

您必须使用GCC的“-x”选项强制识别C ++源代码。

gcc -x c++  <your_source>

由于您正在讨论Makefile,请查找CFLAGS选项并在其中添加-x c++选项。

答案 1 :(得分:3)

从Charniak的页面和Brown网站链接的版本尚未维护。它需要相当多的工作才能使用最新的g ++。

Luckily Brown(BLLIP)确实在GitHub上保留了一个名为“BLLIP Parser”的版本:

https://github.com/BLLIP/bllip-parser

这是第一次为我编译64位Ubuntu。请注意,如果您还没有Flex,还需要安装Flex。