从文本内容生成标签

我想知道是否存在一种算法或方法,可以通过一些权重计算、出现频率或其他工具,从给定的文本中生成关键词/标签。

另外,如果您能指出任何基于Python的解决方案/库,我将不胜感激。

谢谢


回答:

一种方法是提取在文档中出现频率高于偶然预期的词。例如,假设在一大组文档中,“Markov”这个词几乎从未出现过。然而,在同一集合中的某一特定文档中,Markov却频繁出现。这表明Markov可能是一个适合与该文档关联的关键词或标签。

要识别这样的关键词,您可以使用关键词与文档的点互信息。其计算公式为PMI(term, doc) = log [ P(term, doc) / (P(term)*P(doc)) ]。这大致可以告诉你在特定文档中遇到这个词的惊讶程度与在更大集合中遇到它相比有多少减少(或增加)。

要识别与文档关联的最佳5个关键词,您只需按关键词与文档的PMI得分排序,并选择得分最高的5个即可。

如果您想提取多词标签,请查看StackOverflow上的问题如何从一系列文本条目中提取常见/重要短语

借用我对那个问题的回答,NLTK搭配使用指南介绍了如何使用n-gram PMI在大约7行代码中提取有趣的多词表达式,例如:

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注