2021SC@SDUSC
系列文章目录
(五)任务二及PKE模型解读
目录
前言
回顾任务二:
任务二:不同模型性能对比分析
实验中所使用的对比模型如下:PostionRank、Embedrank、PKE、ELSKE
通过小组合作,补充完整下面表格:
我负责的是pke模型
PKE:该模型在多部分图结构中对主题信息进行编码,模型在单个图中表示候选关键词和主题,并利用它们的相互加强关系来提高候选排名,引入了一种新机制,将关键词选择偏好纳入模型。
论文:Unsupervised Keyphrase Extraction with Multipartite Graphs
代码:GitHub - boudinfl/pke: Python Keyphrase Extraction module
一、准备阶段
(一)安装pke
1.安装
参考:GitHub - boudinfl/pke: Python Keyphrase Extraction module
To pip install pke
from github: pip install git+https://github.com/boudinfl/pke.git
2.报错
参考:pip install git+https://github.com/XXX/XXX”报错_夏心桔的博客-CSDN博客
ERROR: Command errored out with exit status 128: git clone -q https://github.com…
解决办法:进入https://github.com/boudinfl/pke.git,下载code选择Download ZIP格式,保存至自己的电脑,然后解压,可以看见文件中有setup.py文件,win+r,cmd,进入对应目录
python setup.py install
即可
(二)安装requirements
six、spacy、nltk、networkx、numpy、scipy、scikit-learn、unidecode、future、joblib
其中nltk有些特殊
(三)安装nltk
1.nltk是什么
NLTK是构建Python程序以处理人类语言数据的领先平台。它为超过50个语料库和词汇资源(如WordNet)提供了易于使用的接口,还提供了一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库,用于工业级NLP库的包装器,以及一个活跃的讨论论坛。
NLTK提供了一个实用的指南,介绍了编程基础和计算语言学的主题,以及全面的API文档,适合于语言学家、工程师、学生、教育工作者、研究人员和行业用户。NLTK适用于Windows、Mac OS X和Linux。最重要的是,NLTK是一个免费的、开源的、社区驱动的项目。
NLTK被称为“一个使用Python教授和研究计算语言学的奇妙工具”,以及“一个使用自然语言的神奇库”。
使用Python进行自然语言处理提供了语言处理编程的实用介绍。它由NLTK的创建者编写,指导读者了解编写Python程序、使用语料库、对文本进行分类、分析语言结构等基本知识。该书的在线版本已经针对Python 3和nltk3进行了更新。(最初的Python 2版本仍然可以在https://www.nltk.org/book_1ed上找到。)
2.安装nltk
pip install nltk即可
参考:NLTK :: Natural Language Toolkit
(四)安装nltk数据包
参考README.md:Pke还需要外部资源,可以通过以下方式获得:
python -m nltk.downloader stopwords
python -m nltk.downloader universal_tagset
python -m spacy download en_core_web_sm # download the english model
报错,参考:NLTK数据包快速安装_MirrorN的博客-CSDN博客_nltk安装
GitHub - nltk/nltk_data: NLTK Data
进入https://github.com/nltk/nltk_data,下载code选择Download ZIP格式,保存至自己的电脑,然后解压,将packages改名为nltk_data,然后在Anaconda Prompt中,进入对应环境,输入
import nltk
from nltk.book import *
这时候由于没有找到数据包,报错信息中会提示搜索的路径:
将刚刚的nltk_data放入任意一个路径下,这样就可以使用nltk的数据了,例如,重复上面的测试代码:
二、模型介绍
1.pke是什么
Pke是一个基于python的开源关键字提取工具包。它提供了一个端到端的关键字提取管道,其中每个组件都可以轻松修改或扩展,以开发新的模型。pke还允许对最先进的关键字提取模型进行简单的基准测试,并使用SemEval-2010数据集上训练的监督模型。
Pke目前实现的关键字提取模型如下:
- Unsupervised models
- Statistical models
- TfIdf [documentation]
- KPMiner [documentation, article by (El-Beltagy and Rafea, 2010)]
- YAKE [documentation, article by (Campos et al., 2020)]
- Graph-based models
- TextRank [documentation, article by (Mihalcea and Tarau, 2004)]
- SingleRank [documentation, article by (Wan and Xiao, 2008)]
- TopicRank [documentation, article by (Bougouin et al., 2013)]
- TopicalPageRank [documentation, article by (Sterckx et al., 2015)]
- PositionRank [documentation, article by (Florescu and Caragea, 2017)]
- MultipartiteRank [documentation, article by (Boudin, 2018)]
- Statistical models
- Supervised models
- Feature-based models
2.pke如何使用
pke提供了一个标准化的API,用于从文档中提取关键字。首先输入下面的5行。要使用另一个模型,只需将pke.unsupervised.TopicRank替换为另一个模型(已实现的模型列表)。
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)
具体教程和代码文档可以在https://boudinfl.github.io/pke/上找到。
总结
本次粗略的介绍了接下来的任务和需要用到的模型,具体请见下一篇博客