哈工大信息检索研究室论坛's Archiver

pjxxlpsj 发表于 2007-4-2 10:24

句法分析中的除0错误


    测试处理一段文本,断句、词法分析、实体识别、消歧都没有,但只要与句法分析相关的内容就会报除0错误!用的是1.2版本,代码移植到delphi环境。
    使用一句化测试也会报错,如“当前发展是做了很多工作”。最简单情况“当前发展”不报错,但只要增加一个字就会报除0错误。
    能不能检查一下到底什么原因造成的?
    使用方式采用最简单的方式,三行语句。
     ClearDOM();
     CreateDOMFromString('当前发展是做了很多工作');
     Parser();

zhenghuali 发表于 2007-4-2 20:35

句法分析中的除0错误

你好:
我使用你给出的三条语句测试了一下,没有问题阿。句法分析结果如下:
1,ADV | 2,SBV | -1,HED | 2,VOB | 3,MT | 6,QUN | 2,VOB
是不是编码的问题:LTP整个处理流程都采用的是GB编码,而且数据也是GB的。

pjxxlpsj 发表于 2007-4-3 10:12

句法分析中的除0错误

的确问题很奇怪,我如果在VC2005下倒是没有报错,就是移植到delphi中不行(因为就是几个动态库的函数啊,想来不会出问题的)。试了多种方式,fromTxt, fromXml, fromString都是这种情况,其他功能不出错,就是parser总是报除0错误,奇怪啊!不像是编码问题啊,我随便用一个输入窗口敲的字,应该都是GB的吧,除非用函数转成Unicode。

zhenghuali 发表于 2007-4-3 19:15

句法分析中的除0错误

请问你是如何移植的。我对dephi不熟悉:)

pjxxlpsj 发表于 2007-4-4 09:21

句法分析中的除0错误

哦,很简单的。就是在delphi中申明动态库。然后在一个窗体中调用就可以了,如下例:
  声明部分(一个单独的.pas文件):
   function CreateDOMFromTxt(const cszTxtFileName: Pchar): Integer; cdecl; external DLLName name '?CreateDOMFromTxt@HIT_IR_LTP@@YAHPBD@Z';
function CreateDOMFromXml(const cszXmlFileName: Pchar): Integer; cdecl; external DllName name '?CreateDOMFromXml@HIT_IR_LTP@@YAHPBD@Z';
function CreateDOMFromString(const str: Pchar): Integer; cdecl; external DllName name '?CreateDOMFromString@HIT_IR_LTP@@YAHPBD@Z';
function ClearDOM(): integer; cdecl; external DllName name '?ClearDOM@HIT_IR_LTP@@YAHXZ';
function SaveDOM(const cszSaveFileName: Pchar): integer; cdecl; external DllName name '?SaveDOM@HIT_IR_LTP@@YAHPBD@Z';
// 各个子功能模块Modules
function SplitSentence(): integer; cdecl; external DllName Name '?SplitSentence@HIT_IR_LTP@@YAHXZ';
function IRLAS(): integer; cdecl; external DllName Name '?IRLAS@HIT_IR_LTP@@YAHXZ'; // Word segment and POS
function NER(): integer; cdecl; external DllName Name '?NER@HIT_IR_LTP@@YAHXZ'; // Named entity recognition
function WSD(): integer; cdecl; external DllName Name '?WSD@HIT_IR_LTP@@YAHXZ'; // Word sense disambiguation
function Parser(): integer; cdecl; external DllName Name '?Parser@HIT_IR_LTP@@YAHXZ'; // Dependency parser
function SRL(): integer; cdecl; external DllName Name '?SRL@HIT_IR_LTP@@YAHXZ'; // Semantic role labeling
function SDS(): integer; cdecl; external DllName Name '?SDS@HIT_IR_LTP@@YAHXZ'; // Single document summarization
function TextClassify(): integer; cdecl; external DllName Name '?TextClassify@HIT_IR_LTP@@YAHXZ'; // Text classification
function CR(): integer; cdecl; external DllName Name '?CR@HIT_IR_LTP@@YAHXZ'; // Coreference resolution
调用过程(在窗体文件中,一个button的click事件):
CreateDOMFromString('当前发展是做了很多工作,但更进一步又很难.');
Parser();
然后就报错了(如图)。其他的调用没有问题,如NE,IRLAS等等。

zhenghuali 发表于 2007-4-5 22:20

句法分析中的除0错误

很奇怪啊。确实无能为力:)我在我这边无法重现你的问题!

ldxstudy 发表于 2007-4-29 11:05

句法分析中的除0错误

我在VS2005 C++环境下调试的很好,但移到VS2005 C#下就出现:Cannot open file FrebVerb.txt
查了下这个文件,在VS2005 C++环境下时,也没有这个文件,而且从共享包中解压出来的也没这个文件。
请问如何处理?谢谢先!

zhenghuali 发表于 2007-5-1 09:54

句法分析中的除0错误

请问您用的是哪一个版本?

zhenghuali 发表于 2007-5-1 10:01

句法分析中的除0错误

对于v1.1,FrebVerb.txt在.data/下
对于v1.2及后续版本,FrebVer.txt在ltp_data/parser_data/下
必须有这个文件,否则句法分析就不能正常运行。不知道您如何在VS2005C++下正常运行?

maohaifei 发表于 2008-1-2 11:09

请教pjxxlpsj!!!

请教pjxxlpsj!!! 我现在也遇到这个问题,你最后是如何解决的?谢谢!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.