【问题标题】:Named-entity recognition: How to tag the training set and chose the algorithm?命名实体识别:如何标记训练集并选择算法?
【发布时间】:2014-01-25 02:28:00
【问题描述】:

对于包含公司名称的文本,我想训练一个自动标记承包商(执行任务的公司)和委托人(雇用承包商的公司)的模型。

一个例句是:

Blossom Inc. 聘请 Big Think 的顾问制定外包战略。

Blossom Inc 为委托人,Big Think 为承包商。

我的第一个问题:只标记我的训练集中的委托人和承包商就足够了,还是另外使用 POS 标记更好?

换句话说,要么

Blossom/PRINCIPAL Inc./PRINCIPAL 雇佣/NN/NN 顾问/NN/NN Big/CONTRACTOR Think/CONTRACTOR 到/NN 开发/NN/NN 外包/NN 战略/NN ././.

Blossom/PRINCIPAL Inc./PRINCIPAL 聘请/VBZ/DT 顾问/NNS/IN Big/CONTRACTOR Think/CONTRACTOR 来/开发/VB 和/DT 外包/NN 策略/NN././.

第二个问题:一旦我有了我的训练集,nltk-package 的哪个算法最有前途? N-Gram Tagger、Brill Tagger、TnT Tagger、Maxent Classifier、朴素贝叶斯,...?还是我完全走错了路?

我是 NLP 的新手,我只是想在投入大量时间标记我的训练集之前征求意见。而且我的文字是德语的,这可能会增加一些困难...感谢您的任何建议!

【问题讨论】:

    标签: python nlp nltk named-entity-recognition pos-tagger


    【解决方案1】:

    我建议您不要合并命名实体和 POS 信息。大多数工作表明,POS(或其他一些形态和/或大写特征)对于检测命名实体很有价值。由于您可以非常安全地使用自动 POS 标记器(除非您处理嘈杂的文本),因此您最终可能会得到以下结果:

    Blossom/NNP/PRINCIPAL Inc./NNP/PRINCIPAL hires/VBZ/O the/DT/O consultants/NNS/O of/IN/O Big/NNP/CONTRACTOR Think/NNP/CONTRACTOR to/TO/O develop/VB/O an/DT/O outsourcing/NN/O strategy/NN/O ./.
    

    POS 级别将被自动标记,而您可以手动注释 PRINCIPAL 和 CONTRACTOR。另请注意,大多数人使用BIO format 来标记命名实体。

    请记住,识别组织通常非常困难 - 至少比人员和位置更难。除非您有预定义的组织列表,否则需要大量词典。直观地说,我想你可以将你的任务划分为:

    1. 识别和过滤组织 (ORG),例如使用 NER 标记器
    2. 注入额外的处理(模式/语法/语义)
    3. 实施第二个模型,在 PRINCIPAL 或 CONTRACTOR 中转换相关 ORG

    【讨论】:

    • Most work has shown 听起来很蓬松,我知道事实并非如此。更不用说您暗示 POS 是一种形态特征,并且大写与 POS 相当,这两者都不是真的。
    • 看看l2r.cs.uiuc.edu/~danr/Papers/RatinovRo09.pdf NER/POS。另外,我并不是说 POS 是一种形态特征,但对于 NER,如果你不使用 POS(它给你 NNP),你将不得不使用一些形态特征或者至少是大写。
    • 该论文将 POS 显示为可能使用的功能示例。与说需要 POS 标记非常不同。此外,标准 POS 标注器(特别是 NLTK 中的标注器)在新文本上的准确率通常仅为 60-70%,因此在其上构建 NER 有点像在沙滩上建造城堡。另外,您的第二点就像是说:如果您不使用此功能,则必须使用其他功能。 Conll(最流行的 NER 语料库)不包含 POS,这使得这成为一个非常有争议的问题。
    • 我真的应该争论吗?引用论文:“大多数 NER 系统使用附加功能,例如 POS 标签、浅层解析信息和地名词典”。 CoNLL 数据格式确实包含 POS:cnts.ua.ac.be/conll2003/ner。尽管如此,让我稍微修改我的答案以考虑您的评论。
    【解决方案2】:
    1. 您不需要手动 POS 标签。词性标注器会为您完成。
    2. 请参阅 this question 了解德语的 POS 标记。

    【讨论】:

      【解决方案3】:

      Named Entity Recognition(Stanford) 足以解决您的问题。

      使用 POS 标记对您的问题没有帮助。

      用于生成 NER 模型的足够数量的训练数据会给您带来良好的结果。

      如果您使用斯坦福 NER,那么它使用 CRF 分类器和算法。

      【讨论】:

        猜你喜欢
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 2015-05-24
        • 2010-11-04
        • 2021-10-03
        • 1970-01-01
        • 1970-01-01
        • 2016-11-17
        相关资源
        最近更新 更多