【问题标题】:Working with named-entity datasets使用命名实体数据集
【发布时间】:2013-05-02 11:21:34
【问题描述】:

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

  • pre-context:注释前的文档文本。
  • annotation:我们要检测实体类型的文档的跨度。如果不存在实体,则将所有实体类型列(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:边界检测 - “start-of-entity”

在第一个示例中,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 来解决上述问题。但我现在真正想做的是尝试一些我尝试过的新技术之外的新技术。这是我的问题,我找不到任何有效的技术。如果您可以建议我,那就太好了,即获得显着进一步收益的唯一方法是开始跳出框框思考! 您能否建议我一些解决上述问题的新技术?

【问题讨论】:

  • 我已重新格式化问题以便更好地理解它。但我仍然不确定你想知道的究竟是什么。您描述了命名实体注释的两种格式,并且您正在寻找问题的解决方案,但我不明白那个问题是什么。
  • 抱歉 jogojapan。我已经编辑了我的问题并重新发布希望它会帮助你理解。
  • 这两个数据集的格式与问题无关,是吗?你基本上是在问:有什么技术可以检测人名、组织名和时间表达?正确的? (如果是这样,这个问题对于 Stackoverflow 来说可能过于宽泛和开放。)
  • 是的,你是对的,我在问有什么技术可以根据上述问题检测 NER?无论如何,我首先找到了两种技术,对每个特征子集使用 POS Taggers 和 Chunkers 并将它们合并并将其应用于熵模型,这提高了我的准确性,现在我正在尝试使用 TF/IDF 和余弦相似度。 jogojapan 感谢您抽出宝贵时间 :-)

标签: machine-learning nlp


【解决方案1】:

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

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

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

我认为有一个单独的开始标签很常见(BEGIN-COMPANY 与 COMPANY),因为它有助于了解 NONE 和类别之间的转换。不过你也可以试试。

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

【讨论】:

  • @kishore 我仍然不明白这个问题,但无论如何,如果你喜欢这个答案,你应该支持它。这就是 Stackoverflow 上的工作方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 2018-11-17
相关资源
最近更新 更多