解析半结构化数据 - 我可以使用任何分类器吗?

时间:2010-10-28 19:07:01

标签: parsing classification data-analysis

我有一套半常规格式的文件。行通常用换行符分隔,每行的主要成分用空格分隔。一些示例是一组家具装配说明,一组目录,一组配方和一组银行对帐单。

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

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

2 个答案:

答案 0 :(得分:2)

如果您的数据具有结构,可以说您可以使用语法来描述某些结构。 (通常,您使用语法来识别它们可以使用的内容,通常过多,并使用语法外检查来删除语法无法消除的内容。)

如果您使用可以运行并行潜在解析的语法,这会解析因为它们变得不可行而导致解析, 你可以直接解析不同的排序。 (GLR解析器可以做得很好)。

成像您有NUMBERS描述金额,NOUNS描述各种对象,VERBS用于操作。 然后,可以接受不同项目顺序的语法可能是:

 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.

您可以通过添加actor必须是人的外部约束来消除此问题。

答案 1 :(得分:0)

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

相关问题