从文本中提取关键字

就在前几天的任务中用到了从文本描述中提取关键字的操作,特意从网上找到了一些提取关键字的方法。

总结如下:需要引入jieba这个库文件

基于TF-IDF算法进行关键词提取

import jieba.analyse

 sentence = "人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。 [1]  2017年12月,人工智能入选“2017年度中国媒体十大流行语”。"
 keywords = " ".join(jieba.analyse.extract_tags(sentence=sentence, topK=20, withWeight=False, allowPOS=()))
 print(keywords)

 keywords = jieba.analyse.extract_tags(sentence, topK=10, withWeight=True, allowPOS=(['n', 'v']))   # 只提取前10个名词和动词
 print(keywords)

基于TextRank算法进行关键词提取

import jieba.analyse
sentence  = "人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。2017年12月,人工智能入选“2017年度中国媒体十大流行语”。"
result = "  ".join(jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')))
print(result)
# 只需要名词和动词
result = "  ".join(jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('n','v')))
print(result)

基于pyhanlp进行关键词提取(这一部分我测试失败了,好像是说我的Java包引入错误,因为hanlp是一个Java项目,所以无法运行)

from pyhanlp import *

result = HanLP.extractKeyword(sentence, 20)
print(result)

参考地址:https://blog.csdn.net/cdlwhm1217096231/article/details/94566936?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

参考的博文还有一个比较全面的方法,他在例子中用到了

  • (1)文件加载
  • (2)jieba分词
  • (3)去停用词
  • (4)构建词袋模型
  • (5)LDA模型训练
  • (6)结果可视化

等多中方式,有兴趣的可以参考上面的博文