NLP:基于snownlp库对文本实现提取文本关键词和文本摘要

举报
一个处女座的程序猿 发表于 2021/03/27 00:56:42 2021/03/27
【摘要】 NLP:基于snownlp库对文本实现提取文本关键词和文本摘要       目录 输出结果 1、测试文本 设计思路 核心代码           输出结果 1、测试文本 今天一大早,两位男子在故宫抽烟对镜头炫耀的视频在网络上传播,引发网友愤怒。有人感到后怕,600年的故宫真要这两个人给点了,万死莫赎。也有评论称,把无知当成炫耀的资本,丢人...

NLP:基于snownlp库对文本实现提取文本关键词和文本摘要

 

 

 

目录

输出结果

1、测试文本

设计思路

核心代码


 

 

 

 

 

输出结果

1、测试文本


  
  1. 今天一大早,两位男子在故宫抽烟对镜头炫耀的视频在网络上传播,引发网友愤怒。有人感到后怕,600年的故宫真要这两个人给点了,万死莫赎。也有评论称,把无知当成炫耀的资本,丢人!
  2. 视频中两位男子坐在故宫公共休息区的遮阳伞下,面对镜头问出:“谁敢在故宫抽烟?”语气极其嚣张,表情带有挑衅意味。话音刚落,另外一位男子面向镜头吸了一口烟。而视频中两人也表示知道有故宫禁止吸烟的规定。
  3. 事实上,2013518日是国际博物馆日,故宫从这一天开始至今一直实行全面禁烟。根据规定,故宫博物院全体员工在院合作单位和个人不管在室内和室外,也不分开放区与工作区,一律禁止吸烟,对违反禁止吸烟规定的人员将进行严格处罚并通报全院。
  4. 此外,在201561日起北京全市也开始了《控制吸烟条例》,规定公共场所工作场所室内环境室外排队等场合禁止吸烟,违者将最高被罚200元,全市统一设立举报电话12320
  5. 视频在网络上传播开来,不少网友担心故宫的安危,称一旦发生火情,后果不堪设想,有网友表示,这样的行为应该被旅游景区拉近黑名单,建议终身禁止进入任何景区和各种场馆。


 

 

设计思路

后期更新……

 

 

 

核心代码


  
  1. class SnowNLP Found at: snownlp.__init__
  2. class SnowNLP(object):
  3. def __init__(self, doc):
  4. self.doc = doc
  5. self.bm25 = bm25.BM25(doc)
  6. @property
  7. def words(self):
  8. return seg.seg(self.doc)
  9. @property
  10. def sentences(self):
  11. return normal.get_sentences(self.
  12. doc)
  13. @property
  14. def han(self):
  15. return normal.zh2hans(self.doc)
  16. @property
  17. def pinyin(self):
  18. return normal.get_pinyin(self.doc)
  19. @property
  20. def sentiments(self):
  21. return sentiment.classify(self.doc)
  22. @property
  23. def tags(self):
  24. words = self.words
  25. tags = tag.tag(words)
  26. return zip(words, tags)
  27. @property
  28. def tf(self):
  29. return self.bm25.f
  30. @property
  31. def idf(self):
  32. return self.bm25.idf
  33. def sim(self, doc):
  34. return self.bm25.simall(doc)
  35. def summary(self, limit=5):
  36. doc = []
  37. sents = self.sentences
  38. for sent in sents:
  39. words = seg.seg(sent)
  40. words = normal.filter_stop(words)
  41. doc.append(words)
  42. rank = textrank.TextRank(doc)
  43. rank.solve()
  44. ret = []
  45. for index in rank.top_index(limit):
  46. ret.append(sents[index])
  47. return ret
  48. def keywords(self, limit=5,
  49. merge=False):
  50. doc = []
  51. sents = self.sentences
  52. for sent in sents:
  53. words = seg.seg(sent)
  54. words = normal.filter_stop(words)
  55. doc.append(words)
  56. rank = textrank.KeywordTextRank
  57. (doc)
  58. rank.solve()
  59. ret = []
  60. for w in rank.top_index(limit):
  61. ret.append(w)
  62. if merge:
  63. wm = words_merge.SimpleMerge
  64. (self.doc, ret)
  65. return wm.merge()
  66. return ret

 

 

 

 

 

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/95936506

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。