【问题标题】:NLP - Determine whether a piece of text is talking about a given topic?NLP - 确定一段文本是否在谈论给定的主题?
【发布时间】:2014-08-03 12:35:07
【问题描述】:

我有一个 Java 应用程序,我希望在其中实时确定给定的一段文本是否正在谈论作为查询提供的主题。

我为此研究过的一些技术是使用 open-nlp 和 Stanford-NLP coref detection 等软件包的共指检测,但这些模型需要很长时间才能加载,并且在生产应用程序环境中似乎不实用。是否可以执行共指分析,使得给定一段文本和一个主题,我可以获得文本正在讨论该主题的布尔答案?

除了需要经过训练的语料库的文档分类之外,还有其他技术可以帮助我实现这一目标吗?

【问题讨论】:

  • 一般来说,行话会在更学术的文章中为您提供非常强的主题(生物学、化学)指标。在简单的文本中,寻找重复的名词并推断代词引用。检查主题是否是“科学”非常容易,但要判断主题是否是“无常在世界文学中的作用”则要困难得多。您的工具必​​须与其测量的对象一样复杂。例如,谁以公里为单位测量钢笔?由于微小的差异,它也可能是一把椅子。
  • 如果你用英语工作,你可以尝试使用wordnet.princeton.edu,这是一个语义词典。这样,您只需要查看是否有与您要查找的主题相关的单词。
  • 这有什么更新吗?我有同样的问题。需要确定给定文本的置信度,即它在谈论我要查询的主题。

标签: java nlp classification stanford-nlp information-retrieval


【解决方案1】:

我建议看看 Weka。它是用 Java 编写的,因此可以很好地适应您的环境,可以更快地满足您的需求,拥有大量工具,并带有 UI 和 API。如果您正在研究无监督方法(即没有任何预分类语料库学习的方法),这里有一篇有趣的论文:http://www.newdesign.aclweb.org/anthology/C/C00/C00-1066.pdf

您也可以在 Google 上搜索“无监督文本分类/信息检索”。你会得到很多方法。您可以选择您认为最简单的一种。

【讨论】:

    【解决方案2】:

    对于每个主题(如果它们是预定义的),您可以创建术语列表并为每个句子检查句子和每个主题列表的余弦相似度,并向用户显示最接近的主题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 2012-02-11
      • 2019-07-12
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多