【K行代码】用Python给你的文本提取关键词

图片

  • 对代码、编程感兴趣的能够关注老K玩代码和我交流!

image.png

用Python给你的文本提取关键词

关键词提取是天然语言处理中常见的业务模块;
要实现关键词提取,Python已经有比较好的现成的开源库能够用,好比我今天要介绍的jieba。
让咱们来看看如何进行关键词提取:html

1. 导入jieba关键词提取模块

import jieba.analyse as ana
  • jieba被较多地应用于中文文本的天然语言处理,最经常使用到的功能是分词。
  • 但除了分词之外,它还有不少其它api接口给到咱们,而今天要提到的关键词提取就是其中之一。

2. 用textrank方法获取关键词

keyword = ana.textrank(sentence)

可选参数说明:算法

  • topK: 输出的关键词数量,若是是None则所有关键词都输出;
  • withWeight: 输出的关键词是否附带textrank计算出来的权重值;
  • allowPOS: 该参数为列表,表示仅显示符合该参数设置词性的关键词;
  • withFlag: 输出的关键词是否附带词性;

TextRank编程

  • TextRank算法是利用局部词汇之间关系(共现窗口)对后续关键词进行排序,直接从文本自己抽取。
  • 参考详文: https://www.cnblogs.com/xueyinzhe/p/7101295.html

3. 用tfidf方法获取关键词

keyword = ana.tfied(sentence)

可选参数说明:api

  • topK: 输出的关键词数量,若是是None则所有关键词都输出;
  • withWeight: 输出的关键词是否附带textrank计算出来的权重值;
  • allowPOS: 该参数为列表,表示仅显示符合该参数设置词性的关键词;
  • withFlag: 输出的关键词是否附带词性;

TFIDF机器学习

  • TFIDF算法是利用根据词频和逆文档频率得出关键词的权重,直接从文本自己抽取。
  • 参考详文: https://blog.csdn.net/zrc199021/article/details/53728499

4. 总结

  • TextRank于TFIDF相比,过于依赖分词结果,若是分词时,某些关键词被切分了,就会获得不一样的结果;
  • 基于上述缘由,TextRank在工业界实际应用时,会须要对部分切分的关键词进行合并操做;
  • TextRank在实际应用的效果稍差于TFIDF,在二者没有明显准确率、召回率差异的状况下,建议使用TFIDF;
  • TextRank涉及到迭代计算,因此提取关键词的速度稍慢于TFIDF;
  • jieba开源库的词典中,每一个关键词都有初始权重,用于上述两种算法的运算。

往期精彩推荐:

粉丝福利:

相关文章
相关标签/搜索