检测自然文本中的(预定义)主题

时间:2015-06-08 14:57:23

标签: nlp text-classification information-extraction

是否有可以检测自然文本主题的库或数据库?

我不是在谈论从提取的关键字生成主题,而是在分析使用的词汇表并将其与预定义的主题相匹配。喜欢搜索烹饪或某些运动中使用的单词(如足球俱乐部或技术术语的名称)。

更新澄清:

示例文本片段:关于足球的一句话,然后是另一句话,谈论在活动中的饮食。

图书馆可以分配类别"体育","足球","烹饪"。

我正在寻找可以分配这些类别(或者#34;感兴趣的主题"也许)的东西,而我不需要用数TB的手动分类文档训练数千个模型。例如,这可以通过匹配关键字而不是统计分析(这就是我之前提到数据库的原因)来实现。

我正在搜索这个,因为我自己没有人力来建立这么大的数据库。

2 个答案:

答案 0 :(得分:0)

您描述的任务是经典的text document classification。我建议您仔细阅读本文,然后按已知关键字进行搜索。

简而言之,最受欢迎的方法是有监督的机器学习(例如SVM),其中tf-idf优于单词,有时甚至是单词n-gram。

Scikit-learn tutorial描述了这项任务;还有像LibShortText这样的图书馆。

对于数据集(更常见的术语而不是'数据库'),请查看Reuters-21578 Text Categorization Collectionhere。通常,从预定义的类别中收集文本并不困难。例如,如果你想通过各种运动对文本进行分类,可以去新闻网站 - 也许是专门的 - 如运动 -

另请参阅stackoverflowquora上的相关问题。

答案 1 :(得分:0)

有多种方法可以解决这个问题,而基本相同的主题是在语义Web领域。

  1. 使用像dbpedia这样的知识库,dbpedia本质上是三重格式的维基百科数据(主题谓词对象)。在谓词-rdfs:label上使用sparql查询dbpedia,如果它是dbpedia的一部分,则会返回一个URI的URI,并且一个名为dcterms的谓词:subject将具有与该主题相关的类别。您可能需要遍历三重存储以获得更抽象的关系。类似的知识库 - ConceptNet,freebase,yago。

  2. 检查,http://www.cyc.com/

  3. 如果您想要我详细说明,请告诉我

    最佳

    Ankit