从文本内容生成标签

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

另外,如果您能指出任何基于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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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