【问题标题】:Text Tagging in Natural Language Processing自然语言处理中的文本标记
【发布时间】:2014-07-10 20:20:28
【问题描述】:

我有以下项目,我需要用与这些新闻项目相关的公司名称来标记新闻项目(公司名称在新闻项目中提到,在许多情况下,在新闻项目的标题中)。

例如:我有大约 2000 条新闻项目(XML 格式),用公司名称及其与故事的相关性级别(高/低)标记[这是手动完成的]。对于每个新闻项目,我都有以下字段:

story_ID,标题;故事_文本;公司名;相关度(H/L)

最后两个字段是手动输入的。

我需要自动化这个标记过程,即我需要用公司名称及其与 High(H)/Low(L) 的相关性来标记传入的新闻项目。

注意:

  1. 有些新闻项目与任何公司都不相关,因此没有标记。

  2. 一些新闻项目与多家公司相关,因此这些新闻项目标有多个公司名称及其相应的相关级别。

我想知道我们可以使用哪些机器学习算法。我对自然语言处理非常陌生。所以我无法掌握如何解决问题。我知道我需要使用多标签/多类分类,但我从来没有使用过多标签分类。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: machine-learning nlp tagging


    【解决方案1】:

    1.词向量

    可能对您来说最好的方法是向量空间技术。基本上是这样的:

    -建立文档中最常用的 25,000 个单词的列表;将它们按固定顺序排列(例如 0="the"、1="cat"、...)

    -为每个文档制作一个长度为 25,000 的向量。每个条目是该单词在文档中出现的次数的计数。 (使用稀疏向量表示以提高效率)

    -取文档向量之间的余弦距离。如果距离很小,他们讨论的是同一个领域。如果一个新文档在一个带标签的训练示例的某个阈值内,给它那个标签。

    这里有一个简短的讨论: http://en.wikipedia.org/wiki/Vector_space_model

    这里有一个演示文稿(关于“分布式词表示”的幻灯片): http://web.stanford.edu/class/cs224u/

    2。命名实体识别

    最细粒度的自然语言处理方法称为命名实体识别;这里有一个版本:

    http://nlp.stanford.edu/software/CRF-NER.shtml

    算法将单词标记为特定实体(即 Apple Computer)。您可以运行这样的算法并检查是否提到了您选择的公司。 NER 算法将擅长识别在一篇关于完全不同主题的文章中提到的 Apple Computer(这对于上面的向量空间技术来说很难,它将文档视为一个整体)。但听起来您不需要那种级别的粒度,所以第一种方法可能是最好的。

    【讨论】:

    • 在此处查看第 14 章和第 15 章:www-nlp.stanford.edu/IR-book 不过,使用 25K 字作为我们所说的功能可能会也可能不会过大,这是您需要考虑的变量之一试一试,看看是什么让您在测试集中获得了更好的分类/标记。
    • 感谢您的建议。我会听从你的建议。但是,我还有一个问题。目前,公司列表是静态的,这意味着不允许额外删除和/或添加名称。然而,实际上,这个列表应该是动态的,应该允许名称的含义、删除和/或添加。在那种情况下,第二种方法不是更合适吗?您的意见将不胜感激。谢谢。
    • 训练过程非常快,所以最简单的方法可能是在添加或删除公司时再次运行它。这假设您已为每个新公司标记了培训文档。如果您不这样做,并且您无法获得任何东西,您可能不得不采用第二种方法。第一种方法更快,但可能更可靠。 (另外,如果上面的答案回答了您的问题,请记住将其标记为“已接受”。)
    【解决方案2】:

    我写了一篇博客分享Best Key Phrase Extraction APIs in the Market的列表。您可以找到商业 API、开源 API 和现场演示。

    【讨论】:

    • 我认为链接坏了!!
    猜你喜欢
    • 2019-06-28
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多