安装和引入

  1. pip install snownlp
  2. from snownlp import SnowNLP

SnowNLP

  1. text = '''李达康就是这样的人,她穷哭出声,不攀龙附凤,不结党营私,不同流合污,不贪污受贿,也不伪造政绩,手下贪污出事了他自责用人不当,服装厂出事了他没想过隐瞒,後面這些是繁體字'''
  2. # 初始化
  3. s = SnowNLP(text)
  4. # 中文分词
  5. print(s.words)
  6. # ['李', '达康', '就', '是', '这样', ...]
  7. # 词性标注
  8. tags = [x for x in s.tags]
  9. # tags
  10. # [('李', 'nr'), ('达康', 'nr'), ('就', 'd'), ('是', 'v'), ('这样', 'r'), ...]
  11. # 断句
  12. print(s.sentences)
  13. # ['李达康就是这样的人', '她穷哭出声', '不攀龙附凤', '不结党营私', ...]
  14. # 情绪判断
  15. # 返回值为正面情绪的概率,越接近1表示正面情绪,越接近0表示负面情绪
  16. text1 = '这部电影真心棒,全程无尿点'
  17. text2 = '这部电影简直烂到爆'
  18. s1 = SnowNLP(text1)
  19. s2 = SnowNLP(text2)
  20. print(s1.sentiments) # 0.9842572323704297
  21. print(s2.sentiments) # 0.0566960891729531
  22. # 拼音
  23. print(s.pinyin)
  24. # ['li', 'da', 'kang', 'jiu', 'shi', 'zhe', 'yang', 'de', ...]
  25. # 繁体转简体
  26. s.han
  27. # 关键字抽取
  28. text3 = '''
  29. 北京故宫是中国明清两代的皇家宫殿,旧称为紫禁城,位于北京中轴线的中心,是中国古代宫廷建筑之精华。北京故宫以三大殿为中心,占地面积72万平方米,建筑面积约15万平方米,有大小宫殿七十多座,房屋九千余间。是世界上现存规模最大、保存最为完整的木质结构古建筑之一。
  30. 北京故宫于明成祖永乐四年(1406年)开始建设,以南京故宫为蓝本营建,到永乐十八年(1420年)建成。它是一座长方形城池,南北长961米,东西宽753米,四面围有高10米的城墙,城外有宽52米的护城河。紫禁城内的建筑分为外朝和内廷两部分。外朝的中心为太和殿、中和殿、保和殿,统称三大殿,是国家举行大典礼的地方。内廷的中心是乾清宫、交泰殿、坤宁宫,统称后三宫,是皇帝和皇后居住的正宫。[1]
  31. 北京故宫被誉为世界五大宫之首(法国凡尔赛宫、英国白金汉宫、美国白宫、俄罗斯克里姆林宫),是国家AAAAA级旅游景区,[2-3]1961年被列为第一批全国重点文物保护单位;[4]1987年被列为世界文化遗产。[5]
  32. 2012年1月至2018年6月,故宫累计接待观众达到1亿人次。2019年起,故宫将试行分时段售票[6]。2018年9月3日,故宫养心殿正式进入古建筑研究性保护修缮工作的实施阶段。[7]2019年3月4日,故宫公布了2019年下半年展览计划。[8]
  33. '''
  34. s = SnowNLP(text3)
  35. print(s.keywords(limit=10))
  36. # ['故宫', '年', '米', '外', '中心', '世界', '建筑', '北京', '宫', '保护']
  37. # 概括总结文章
  38. print(s.summary(limit=4))
  39. # ['北京故宫以三大殿为中心', ...]
  40. # TFIDF
  41. s = SnowNLP([
  42. ['性格', '善良'],
  43. ['温柔', '善良', '善良'],
  44. ['温柔', '善良'],
  45. ['好人'],
  46. ['性格', '善良'],
  47. ])
  48. print(s.tf)
  49. # [{'性格': 1, '善良': 1}, {'温柔': 1, '善良': 2}, ...] 词频
  50. print(s.idf)
  51. # {
  52. # '性格': 0.33647223662121295,
  53. # '善良': -1.0986122886681098,
  54. # '温柔': 0.33647223662121295,
  55. # '好人': 1.0986122886681098
  56. # }
  57. # 文本相似性
  58. print(s.sim(['温柔']))
  59. print(s.sim(['善良']))
  60. print(s.sim(['好人']))
  61. # [0, 0.2746712135683371, 0.33647223662121295, 0, 0]
  62. # [-1.0986122886681098, -1.3521382014376737, -1.0986122886681098, 0, -1.0986122886681098]
  63. # [0, 0, 0, 1.4175642434427222, 0]