Datawhale--AI夏令营学习笔记(三)--NLP方向

当我们想从特定文档中了解关键信息时,通常会转向关键词提取(keyword extraction)。关键词提取(keyword extraction)是提取与输入文本最相关的词汇、短语的自动化过程。
提取关键词的方法主要分为有监督和无监督两类。

  1. 无监督关键词提取方法:
    无监督方法是指在没有标注的关键词信息的情况下,从文本中自动提取关键词。这些方法主要基于文本中词语的频率、共现关系、语义等信息来计算关键词的重要性。一些常见的无监督关键词提取方法包括:
  • TF-IDF(Term Frequency-Inverse Document Frequency):TF-IDF根据词频和文档频率来衡量词的重要性,词频越高且在更少的文档中出现的词越重要。
  • TextRank:TextRank是一种基于图论的无监督算法,将文本表示为图,并通过PageRank算法来确定关键词的重要性。
  • RAKE(Rapid Automatic Keyword Extraction):RAKE根据短语中词的共现频率和词的频率来计算关键词的得分。
  • KeyBERT:KeyBERT是一个基于BERT模型的Python库,用于关键词提取。它可以根据输入文本自动提取关键词,并支持使用预训练的BERT模型。
  1. 有监督关键词提取方法:
    有监督方法是指利用已标注的关键词数据(例如人工标注的关键词)来训练模型,然后通过模型预测新文本中的关键词。有监督关键词提取通常需要大量标注数据,因此在实际应用中较为少见。一些常见的有监督关键词提取方法包括:
  • 使用传统的机器学习算法(如支持向量机、随机森林等)进行关键词提取,这些算法需要手工设计特征并使用已标注的数据进行训练。
  • 使用深度学习模型,如BERT等,进行关键词提取。这些模型需要大量的标注数据进行训练,并可以在更复杂的NLP任务中表现出色。

接下来我将介绍如何使用keyBert来快速简单地提取文本中的关键词

from keybert import KeyBERT
kw_model =KeyBERT('model/paraphrase-MiniLM-L6-v2')

此处我们选择加载的模型地址为https://huggingface.co/sentence-transformers/paraphrase-MiniLM-L6-v2
然后就可以调用模型的extract_keywords方法得到关键词列表了,具体的方法参数如下:

"""
docs:要提取关键字/关键短语的文档
candidates:要使用的候选关键字/关键短语,而不是从文档中提取它们
keyphrase_ngram_range:提取的关键字/关键短语的长度(以字为单位),关键短语的词汇范围,即关键短语的最小和最大词汇数。
stop_words:要从文档中删除的停用词
top_n:返回前 n 个关键字/关键短语,默认5
min_df:如果需要提取多个文档的关键字,则一个单词在所有文档中的最小文档频率
use_maxsum: 是否使用 Max Sum Similarity 来选择keywords/keyphrases
use_mmr:是否使用最大边际相关性(MMR)进行关键字/关键短语的选择
diversity:如果 use_mmr 设置为 True,结果的多样性在 0 和 1 之间
nr_candidates:如果 use_maxsum 设置为 True,要考虑的候选数
vectorizer:从 scikit-learn 传入你自己的 CountVectorizer
highlight:是否打印文档并突出显示其关键字/关键短语。注意:如果传递了多个文档,这将不起作用。
"""

你可能感兴趣的:(人工智能,学习,笔记)