【问题标题】:Text classification using Java使用 Java 进行文本分类
【发布时间】:2011-05-03 07:59:38
【问题描述】:

我需要将文本或单词归类到特定类别。例如,文本“Pink Floyd”应归类为“音乐”或“维基媒体”归类为“技术”或“爱因斯坦”归类为“科学”。

如何做到这一点?有没有办法可以使用DBpedia 来做同样的事情?如果没有,数据库必须时常训练,对吧?

【问题讨论】:

  • 机器学习只有在上下文中使用这些术语才能真正帮助你.您从哪里获得需要分类的术语?阅读文本或只是一个大的术语列表?
  • 阅读文本,Thien。我只会从句子中提取可能的名词和形容词,并根据这些术语对文本进行分类。

标签: nlp machine-learning ontology dbpedia


【解决方案1】:

这是一个text classification 问题。 Manning, Raghavan and Schütze's Information Retrieval book chapter 是一个很好的介绍。我认为您不需要 DBPedia 或 NER,只需一个带有足够标记示例的小型标记训练数据集即可。

【讨论】:

【解决方案2】:

是的,对于此类问题,DBpedia 可能是一个不错的选择。你必须

  1. 压缩 DBpedia 类别结构,以便获得正确的粒度(例如,Pink Floyd 列在Capitol Records artists 和许多其他类别下,但不直接列在Music 下)。不妨挑几个大类,试着找出你的概念是否间接地列在其中;
  2. 规范化文本;爱因斯坦被列为Albert Einstein,而不是einstein
  3. 处理由于描述多个概念和属于多个顶级类别的概念的术语而引起的歧义。

这些问题可能可以使用机器学习来解决,但我只有从运行文本中提取这些术语以及相关特征才能看到它是如何解决的。但在这种情况下,您不妨将整个文本分类为您在步骤 1 中选择的类别之一。

【讨论】:

  • 感谢您的回复。但是我该怎么做..对 dbpedia 结构进行分类?就像你说的,它不在我喜欢的类别下。如果我想查询随机数据,我想它可以正常工作。
  • @Madhura:DBpedia 在其层次结构的顶部附近有类别MusicScience。您必须使用一些图形算法才能找到它们。
【解决方案3】:

这是经过充分研究的named entity recognition 问题。除非您特别需要推出自己的技术(提示:这通常是一个难题),否则使用 Gate 或基于它的在线服务之一(例如 TSO 的 Data Enrichment Service)将是一个很好的选择选项。另一种在线服务是OpenCalais

【讨论】:

  • 实际上,命名实体识别/分类是在运行文本中执行此操作的任务,通常用于更广泛的类别。
【解决方案4】:
  1. 将您的类别映射到 DBPedia。
  2. 使用 lucene 选择 DBPedia 类别进行索引,并使用您的类别名称标记数据。
  3. 搜索您的数据 - 标记化、规范化将由 Lucene 完成。

这种方法在某种程度上与 KNN 分类有关。

【讨论】:

  • 您是说通过在每个子类别和文章标题中构建一个 Lucene Document 来索引所有类别吗?如果是这样,那将与 kNN 有点相似,是的。我为我的论文研究做了一些类似的事情,尽管数据不同,但确实奏效了。
  • 是的,您理解正确。我用来创建维基百科类别的语义空间,非常有用。
【解决方案5】:

是的,DBpedia 是文本分类的好选择,因为您可以使用它的谓词/关系来查询和提取特定类别的有意义信息。

您可以查看用于查询 Dbpedia 的端点: http://dbpedia.org/sparql

此外,通过以下链接了解 SPARQL 的基本语法以在端点上进行查询: http://www.w3.org/TR/rdf-sparql-query/

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 2012-03-27
    • 2014-04-30
    • 2013-07-16
    • 2016-12-27
    • 2016-03-03
    • 2023-03-21
    • 2015-09-30
    相关资源
    最近更新 更多