5个最佳Python开源关键字提取库合集介绍

2021年11月29日18:36:59 发表评论 1,965 次浏览

查看我们收集的 5 个最佳 Python 开源关键字提取库。

5个最佳Python开源关键字提取库合集介绍
最佳Python关键字提取库合集

Python关键字提取库有哪些?在数据科学中,关键词提取是一种文本分析技术,你可以在短时间内获得某些文本的重要见解。它应该有助于从任何文本中获取相关关键字,并节省你浏览整个文档的宝贵时间。在不同的项目中有多种功能,你可以实现这种库,例如当你在某个博客上写文章时自动提取关键词,所以如果你觉得懒惰或比平时少创意,你可以自动生成它们你的原文。另一个有用的真实案例是,例如,当你在商店中发布产品并收到评论时。你可以使用此功能提取产品的问题,自动分析数千条评论,而无需探索所有评论。

在这篇最佳Python关键字提取库合集中,我将与你分享 5 个最有用的 Python 库,以自动从多种语言的任何文本中提取关键字。

5.RAKE

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. MultiRake

Python关键字提取库有哪些?MultiRake 是 Python 的多语言快速自动关键字提取 (RAKE) 库,具有以下特点:

  • 从以任何语言编写的文本中自动提取关键字
  • 无需事先了解文本语言
  • 不需要有停用词列表
  • 目前有 26 种语言可用,其余的 - 从提供的文本生成停用词
  • 只需配置rake,插入文本并获取关键字(见实现细节)

此实现与其他实现的不同之处在于它的多语言支持。基本上你可以在不知道其语言的情况下提供文本(它应该用西里尔字母或拉丁字母书写),没有明确的停用词列表并获得不错的结果。虽然最好的结果是通过彻底构建的停用词列表来实现的。在 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 - 乌克兰语

1. KeyBERT

5个最佳Python开源关键字提取库合集介绍
Python关键字提取库推荐

最佳Python关键字提取库合集:KeyBERT 毫无疑问是最容易使用的库之一。KeyBERT 是一种最小且易于使用的关键字提取技术,它利用 BERT 嵌入来创建与文档最相似的关键字和关键短语。可以使用 pip 使用以下命令轻松安装此库:

pip install keybert

安装后,你可以将其用作脚本中的库,使用如下脚本,你需要在其中导入 KeyBERT 模型,一旦加载,你就可以使用它从包含纯文本的变量中提取关键字:

# script.py
from keybert import KeyBERT

doc = """
    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(一种创建关键字和关键短语的快速简便的方法)的目标。有关该库的更多信息,请访问官方存储库或在该库作者撰写的媒体上阅读本文。 

如果你知道另一个允许从纯文本中提取关键字的很棒的库,请在评论框中与社区分享。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: