0

我正在从事一项分类任务,我们正在构建模型来检测文本范围中存在的实体的类型(即注释)。这些模型可以使用数据集构建,其中每个实例由三个独立的文本变量表示:

  • pre-context:注释之前的文档文本。
  • 注释:我们要检测实体类型的文档的范围。如果不存在实体,则将所有实体类型列(isPerson、isOrganization、isTime)标记为 0
  • post-context:注释后的文档文本。

数据集 1:文本跨度中的实体类型分类。

preContext  | annotation       | postContext | isOrganization | isPerson | isTime 
....        | on July 12, 2011 | ....        | 0              | 0        | 1 
With over 8 | million invested | in Chrysler | 0              | 0        | 0

数据集 2:边界检测 - “实体开始”

在第一个示例中,preContext 和 text 之间的转换标志着组织类型实体的开始。在第二个示例中,在 preContext 和 text 之间的转换中不存在实体,因此所有因变量列都标记为零。

preContext          | text
    | isStartOfOrganization | isStartOfPerson | isStartOfTime
Private equity firm | Westbridge Capital could exit part or all of its stake in Hyderabad-based technology firm.
    | 1 | 0 | 0

对于上述问题,我一直在使用基本的 NLP 技术,例如 TF/IDF、N-grams、Tokenizers、Stemmers、POS Taggers、Stoplist。但我现在真正想做的是尝试一些我尝试过的新技术之外的新技术。这是我的问题,我找不到任何有效的技术。如果您能建议我,那就太好了,即获得显着进一步收益的唯一方法是开始跳出框框思考!您能否建议我一些解决上述问题的新技术?

4

1 回答 1

1

命名实体识别是规范序列标记任务之一。通常这样做的方式(您接近但有点不同)是将标签附加到句子中的每个单词。类似于以下内容:

有/没有超过/没有8/没有百万/没有投资/没有在/没有克莱斯勒/BEGIN-COMPANY

On/NONE Tuesday/NONE, Mr/BEGIN-PERSON X/PERSON, CEO/NONE of/NONE Technology/BEGIN-COMPANY Products/COMPANY Inc/COMPANY, 说/NONE ...

我相信有一个单独的开始标签很常见(BEGIN-COMPANY vs COMPANY),因为它有助于学习 NONE 和类别之间的转换。不过你可以两个都试试。

然后,您不想将其视为一堆独立的决策(分类),因为您做出的决策是相互依赖的。相反,使用特定的序列标记模型。如果您可以访问工具包(许多工具包可用),最通用和最容易上手的是条件随机字段,因为您可以为每个单词定义任意特征函数,而无需担心分布假设。常见的特征是 word-id、先前的标签 id、单词是否大写、是否出现在各种专有名词列表中等。然后您可以从标记数据中学习模型并将其应用于新文本。

于 2013-05-08T10:07:36.657 回答