1

我有一组具有半常规格式的文档。行通常用换行符分隔,每行的主要组成部分用空格分隔。一些示例是一组家具组装说明、一组目录、一组食谱和一组银行对账单。

问题在于,每组中的每个样本都与其对等成员不同,这使得 RegEx 解析不可行:项目的数量可能位于项目名称之前或之后,相同的项目可能在样本之间具有不同的名称、说明性文本或行之间可能存在注释等。

我使用分类器(神经网络、贝叶斯、GA 和 GP)来处理整个文档或数据集,但没有从文档中提取项目并在上下文中对其进行分类。这可以做到吗?有没有更可行的方法?

4

2 回答 2

2

如果您的数据具有结构,可以说您可以使用语法来描述其中的一些结构。(通常,您使用语法来识别它们可以识别的东西,通常是过多的,并使用额外的语法检查来修剪语法无法消除的东西)。

如果您使用可以运行并行潜在解析的语法,从而在解析变得不可行时消除解析,您可以直接解析不同的排序。(GLR 解析器可以很好地做到这一点)。

想象一下,您有描述数量的数字,描述各种对象的名词和表示动作的动词。那么可以接受不同项目顺序的语法可能是:

 G = SENTENCE '.' ;
 SENTENCE = VERB NOUN NUMBER ; 
 SENTENCE = NOUN VERB NUMBER;
 VERB = 'ORDER' | 'SAW' ;
 NUMBER = '1' | '2' | '10' ;
 NOUN = 'JOE' | 'TABLE' | 'SAW' ;

这个示例非常简单,但它会处理:

 JOE ORDERED 10.
 JOE SAW 1.
 ORDER 2 SAW.

它还将接受:

 SAW SAW 10.

您可以通过添加演员必须是人的外部约束来消除这种情况。

于 2010-10-29T02:23:50.373 回答
0

有很多方法可以做到这一点。这是一个活跃的研究领域,称为:信息提取。特别是从半结构化来源中提取信息。

于 2010-11-07T16:12:49.290 回答