如何从文本中提取关系

时间:2017-08-04 19:09:03

标签: nlp stanford-nlp

我目前是NLP的新手,需要指导我如何解决这个问题。

我目前正在进行过滤技术,我需要将数据库中的数据标记为正确或不正确。我得到了一个带有列和行的结构化数据集。

但是,过滤条件是在文本文件中给出的。 过滤文本文件的示例如下:

Values in the column ID which are bigger than 99
Values in the column Cash which are smaller than 10000
Values in the column EndDate that are smaller than values in StartDate
Values in the column Name that contain numeric characters

遵循这些条件的任何值都应标记为坏。

但是,我想提取这些条件并将它们附加到我迄今为止制作的程序中。

例如,对于上述条件,我想制作

`if ID>99` 
`if Cash<10000` 
`if EndDate < StartDate` 
`if Name LIKE %[1-9]%`

如何使用斯坦福NLP实现上述结果? (或任何其他NLP库)。

1 个答案:

答案 0 :(得分:3)

这看起来不像机器学习问题;它是一个简单的解析器。您有一个简单的语法,您可以从中轻松提取显着特征:

  • 列名
  • 关系
  • 目标值目标列

生成的&#34;行动规则&#34;只是删除&#34;语法糖&#34;单词并将关系 - 可能还有目标值 - 转换为其符号形式。

列举词典中每个位置的所有关键词。然后在您选择的实现语言中使用基本的字符串操作运算符来查找所需的三个字段。

示例

鉴于上述数据,您的词典可能是这样的:

column_trigger = "Values in the column"
relation_dict = {
    "are bigger than"  : ">",
    "are smaller than" : "<",
    "contain"          : "LIKE",
    ...
}
value_desc = {
    "numeric characters" : "%[1-9]%",
    ...
}

从这里开始,在标准解析中使用这些项目。如果您对此不熟悉,请使用您喜欢的编程语言查找简单句子语法的基础知识,例如

等规则
SENTENCE => SUBJ VERB OBJ

这会让你前进吗?