查看我们收集的 5 个最佳 Python 开源关键字提取库。
文章图片
在这篇最佳Python关键字提取库合集中,我将与你分享 5 个最有用的 Python 库,以自动从多种语言的任何文本中提取关键字。
5.RAKE【5个最佳Python开源关键字提取库合集介绍】Python关键字提取库推荐:快速自动关键字提取 (RAKE) 算法的 Python 实现,如:Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010) 中所述。从单个文档中自动提取关键字。在 MW Berry & J. Kogan(编辑),文本挖掘:理论和应用:John Wiley & Sons。
4.YAKE在线演示? API
雅克!是一种轻量级的无监督自动关键字提取方法,它依靠从单个文档中提取的文本统计特征来选择文本中最重要的关键字。我们的系统不需要针对特定??的文档集进行训练,也不依赖于字典、外部语料库、文本大小、语言或领域。为了证明我们提议的优点和重要性,我们将其与十种最先进的无监督方法(TF.IDF、KP-Miner、RAKE、TextRank、SingleRank、ExpandRank、TopicRank、TopicalPageRank、PositionRank 和 MultipartiteRank)进行比较,以及一种监督方法(KEA)。在二十个数据集之上进行的实验结果(参见下面的基准部分)表明,我们的方法在许多不同大小的集合下明显优于最先进的方法,
3. PKE最佳Python关键字提取库合集:PKE 是一个 开源 的基于 Python 的 关键短语提取 工具包,提供端到端的关键短语提取管道,其中每个组件都可以轻松修改或扩展以开发新模型。它还允许轻松对最先进的关键短语提取模型进行基准测试,并附带在SemEval-2010 数据集上训练的监督模型 。这个库可以使用以下 pip 命令安装(它需要 Python 3.6+):
pip install git+https://github.com/boudinfl/pke.git
它确实需要一些额外的库才能工作:
python -m nltk.downloader stopwords
python -m nltk.downloader universal_tagset
python -m spacy download en_core_web_sm # download the english model
PKE 提供了用于从文档中提取关键短语的标准化 API。它可以很容易地使用,如以下脚本所示:
# script.py
import pke# initialize keyphrase extraction model, here TopicRank
extractor = pke.unsupervised.TopicRank()# load the content of the document, here document is expected to be in raw
# format (i.e. a simple text file) and preprocessing is carried out using spacy
extractor.load_document(input='/path/to/input.txt', language='en')# keyphrase candidate selection, in the case of TopicRank: sequences of nouns
# and adjectives (i.e. `(Noun|Adj)*`)
extractor.candidate_selection()# candidate weighting, in the case of TopicRank: using a random walk algorithm
extractor.candidate_weighting()# N-best selection, keyphrases contains the 10 highest scored candidates as
# (keyphrase, score) tuples
keyphrases = extractor.get_n_best(n=10)
对于使用另一个模型,只需替换
pke.unsupervised.TopicRank
为另一个模型(已实现模型列表)。2. MultiRakePython关键字提取库有哪些?MultiRake 是 Python 的多语言快速自动关键字提取 (RAKE) 库,具有以下特点:
- 从以任何语言编写的文本中自动提取关键字
- 无需事先了解文本语言
- 不需要有停用词列表
- 目前有 26 种语言可用,其余的 - 从提供的文本生成停用词
- 只需配置rake,插入文本并获取关键字(见实现细节)
- bg - 保加利亚语
- cs - 捷克语
- da - 丹麦语
- de - 德语
- el - 希腊语
- en - 英语
- es - 西班牙语
- fi - 芬兰语
- fr - 法语
- ga - 爱尔兰语
- hr - 克罗地亚语
- hu - 匈牙利语
- id - 印尼语
- it - 意大利语
- lt - 立陶宛语
- lv - 拉脱维亚语
- nl - 荷兰语
- no - 挪威语
- pl - 波兰语
- pt - 葡萄牙语
- ro - 罗马尼亚语
- ru - 俄语
- sk - 斯洛伐克语
- sv - 瑞典语
- tr - 土耳其语
- uk - 乌克兰语
文章图片
pip install keybert
安装后,你可以将其用作脚本中的库,使用如下脚本,你需要在其中导入 KeyBERT 模型,一旦加载,你就可以使用它从包含纯文本的变量中提取关键字:
# script.py
from keybert import KeyBERTdoc = """
Supervised learning is the machine learning task of learning a function that
maps an input to an output based on example input-output pairs. It infers a
function from labeled training data consisting of a set of training examples.
In supervised learning, each example is a pair consisting of an input object
(typically a vector) and a desired output value (also called the supervisory signal).
A supervised learning algorithm analyzes the training data and produces an inferred function,
which can be used for mapping new examples. An optimal scenario will allow for the
algorithm to correctly determine the class labels for unseen instances. This requires
the learning algorithm to generalize from the training data to unseen situations in a
'reasonable' way (see inductive bias).
"""kw_model = KeyBERT()
keywords = kw_model.extract_keywords(doc)print(kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 1), stop_words=None))
#[
#('learning', 0.4604),
#('algorithm', 0.4556),
#('training', 0.4487),
#('class', 0.4086),
#('mapping', 0.3700)
#]
就是这样!正如库的作者所指定的,这是 KeyBERT(一种创建关键字和关键短语的快速简便的方法)的目标。有关该库的更多信息,请访问官方存储库或在该库作者撰写的媒体上阅读本文。
如果你知道另一个允许从纯文本中提取关键字的很棒的库,请在评论框中与社区分享。
推荐阅读
- 如何使用JavaScript轻松生成Beep(通知)声音()
- 如何解决Windows打字延迟问题(分步指南)
- 如何在Windows 10中设置环绕声(分步指南)
- 什么是Windows 10 UAC(如何禁用UAC?)
- 加速Windows 10的15种最佳方法详细指南
- android AChartEnginee解说之源代码框架解读
- 新建maven项目遇到Select an Archetype时没有maven-archetype-webapp处理方法
- [Android 性能优化系列]内存之基础篇--Android怎样管理内存
- 指定Android Studio编译工程时的源文件编码