提取文章中关键词综述

发布于:2023-01-11 ⋅ 阅读:(520) ⋅ 点赞:(0)

关于文本的关键词提取方法分为有监督、半监督和无监督三种:

  • 有监督的关键词抽取算法是将关键词抽取算法看作是二分类问题,判断文档中的词或者短语是或者不是关键词。既然是分类问题,就需要提供已经标注好的训练语料,利用训练语料训练关键词提取模型,根据模型对需要抽取关键词的文档进行关键词抽取。
  • 半监督的关键词提取算法只需要少量的训练数据,利用这些训练数据构建关键词抽取模型,然后使用模型对新的文本进行关键词提取,对于这些关键词进行人工过滤,将过滤得到的关键词加入训练集,重新训练模型。
  • 无监督的方法不需要人工标注的语料,利用某些方法发现文本中比较重要的词作为关键词,进行关键词抽取

参考链接:文本关键词提取算法解析 - 知乎 (zhihu.com)

基于统计特征的关键词抽取,比如td-idf

基于词图模型的关键词抽取,比如textrank

基于主题模型的关键词抽取,比如zero-shot-clasification

常见的算法效果如下,GPT的效果更差,没有列出来

 

rake算法流程

a. 预处理

首先,删除停用词。

b. 生成候选词

在停顿词位置和标点处对文档进行分割,得到内容词。不包含停用词的连续共现词被视作候选关键词。

 

c. 候选词打分

接下来,计算所有内容词的频率。这样就能得到频繁出现的词。

rake算法的缺点如下:

  • 如果RAKE中使用的停用词列表并不详尽,它会将连续的长文本视为一个短语,并输出非常长的关键字.
  • 包含停用词的多词短语可能会被误判。例如,若有一个叫 "Good Day "的品牌,且停用词列表中存在"good"一词,这个"Good Day"就会被遗漏.

yake提取关键词代码如下:

import yake

text = """no a good product very crooked this is not a good product not sturdy or striaght when assembled instruction where not easy to follow had neighbor help me he agreed this is not good product"""



kw_extractor = yake.KeywordExtractor()
keywords = kw_extractor.extract_keywords(text)

for kw in keywords:
	print(kw)


网站公告

今日签到

点亮在社区的每一天
去签到