2021SC@SDUSC
pke工具包介绍
pke
是一个基于python的开源关键词keyphrase提取工具包。它提供一个端到端的关键词提取通道,其中每个组件都可以很容易的修改或扩展,以开发新的模型。pke
还允许对最先进的关键短语提取模型进行简单的基准测试。
从GitHub下载pke
pip install git+https://github.com/boudinfl/pke.git
pke还需要一些外部资源依赖
python -m nltk.downloader stopwords
python -m nltk.downloader universal_tagset
python -m spacy download en_core_web_sm # download the english model
因为外网下载比较麻烦,可以直接去官网下载:https://github.com/nltk/nltk_data
下载其中的package,重命名为nltk_data,并把它放在报错的文件夹。找到punkt目录,将punkt.zip解压。
pke的使用
pke
是一个标准化的API,用于从文档中提取关键短语。如果使用另一个模型,只需要用另一个模型替换掉pke.unsupervised.TopicRank
。如下:
import pke
# 初始化关键词提取模型,这里是TopicRank.
extractor = pke.unsupervised.TopicRank()
# 下载文件中的内容, 文件最好只占一行
# 格式 (例子中是.txt文档)和预处理使用spicy方式。
extractor.load_document(input='/path/to/input.txt', language='en')
# 关键候选词选择, 在TopicRank的情况下: 名词和形容词排序
# (i.e. `(Noun|Adj)*`)
extractor.candidate_selection()
# 候选词权重, 在TopicRank的情况下: 使用随机行走算法
extractor.candidate_weighting()
# N-best selection, 关键词包括10个得分最高的候选词(keyphrase, score) 元组
keyphrases = extractor.get_n_best(n=10)
pke
一般实施以下几种关键词提取模型:
Unsupervised models:
Statistical models
- TfIdf
- KPMiner
- YAKE
Graph-based models
- TextRank
- SingleRank
- TopicRank
- TopicalPageRank
- PositionRank
- MultipartiteRank
Supervised models
Feature-based models
- Kea
- WINGNUS