如何用元数据注释文本文档?


18

拥有大量文本文档(自然语言,非结构化),用一些语义元数据注释它们的可能方法是什么?例如,考虑一个简短的文档:

I saw the company's manager last day.

为了能够从中提取信息,必须使用附加数据对其进行注释,以减少歧义。查找此类元数据的过程不成问题,因此假定它是手动完成的。问题是如何以一种可以更方便/有效地进行进一步分析的方式存储这些数据?

一种可能的方法是使用XML标记(请参见下文),但似乎太冗长了,也许有更好的方法/准则将这种元数据存储在文本文档中。

<Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s
manager <Time value="2014-5-29">last day</Time>.

SGML的主要目的之一(其后代XML同样适用)是提供标记文本文档(POS 语义标记)的方法。
猎鹿人2014年

您想添加哪种元数据更具体/更严格?在您的两个示例中,我怀疑是否有一种较为冗长的方式具有与XML标签相同的通用表达能力。
ojdo 2014年

@ojdo大多数元数据用于消除歧义(例如相对时间),或用于指定特殊实体(即FK)。
Amir Ali Akbari 2014年

2
我过去使用过brat.nlplab.org。有许多不同类型的注释的漂亮界面。注释存储在一个单独的.annot文件中,该文件是带注释单词及其在文档中位置的列表。
user1893354 2014年

@ user1893354非常有帮助!特别是它所使用的“ 小子对峙格式 ”似乎非常适合我的需求。我建议您发布答案。
阿米尔·阿里·阿克巴里

Answers:


15

就个人而言,我主张使用既不是NLP领域专用的东西,又是通用性很强的东西,以至于即使您已经超出了此元数据级别,它仍然可以用作工具。我会特别选择一种格式,无论开发环境如何,它都可以使用;如果有必要,它可以保留一些基本结构(例如标记化)。

可能看起来很奇怪,但我会诚实地建议JSON。它得到了很好的支持,支持许多结构,并且足够灵活,以至于由于功能不够强大而不必离开它。对于您的示例,如下所示:

{'text': 'I saw the company's manager last day.", {'Person': [{'name': 'John'}, {'indices': [0:1]}, etc...]}

与任何特定于NLP的格式相比,您拥有的一大优势是JSON可以在任何环境中进行解析,而且由于您可能仍然必须编辑格式,因此JSON使自己非常简单,可让您短距离进行编辑其他格式。

如果需要,还可以隐式存储令牌化信息:

{"text": ["I", "saw", "the", "company's", "manager", "last", "day."]}

编辑:澄清元数据的映射是相当开放的,但这是一个示例:

{'body': '<some_text>',
 'metadata': 
  {'<entity>':
    {'<attribute>': '<value>',
     'location': [<start_index>, <end_index>]
    }
  }
}

希望有帮助,如果您还有其他问题,请告诉我。


作为一名Web开发人员,JSON对我来说似乎完全合理,但是,您能否详细说明将单词映射到实体的确切格式?
阿米尔·阿里·阿克巴里

@AmirAliAkbari更新了答案以包含更多详细信息。
印度2014年

7

通常,您不想使用XML标记以这种方式标记文档,因为标记可能会重叠。

UIMAGATE和类似的NLP框架表示与文本分离的标签。每个标签,如PersonACMEJohn等等被存储为使得标签开始位置和它结束的位置。因此,对于标记ACME,它将存储为从位置11开始到位置17结束。


7

根据我的评论,小子注释工具可能对您有用。我尝试了很多,这是我发现的最好的。它具有一个不错的用户界面,并且可以支持许多不同类型的注释。批注存储在单独的.annot文件中,该文件包含每个批注及其在原始文档中的位置。不过要警告一下,如果您最终希望将注释输入到像Stanford NER工具这样的分类器中,那么您将必须进行一些操作才能将数据转换为可接受的格式。


1

要描述所有现有数据是一项艰巨的任务,但是我们可以使用数据模型:http : //schema.org/,其中信息的结构类型。先前执行的目标是实施MarkUp技术,因此,这似乎对您的任务很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.