鱼C论坛

 找回密码
 立即注册
查看: 3486|回复: 3

[技术交流] Jieba 中文分词

[复制链接]
发表于 2020-3-7 13:30:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zltzlt 于 2020-3-7 13:33 编辑
  1. from jieba import lcut
  2. print(list(lcut("中华人民共和国是一个伟大的国家")))
复制代码


运行结果:

  1. ['中华人民共和国', '是', '一个', '伟大', '的', '国家']
复制代码


可以设置 cut_all 参数为 True,代表返回所有可能的分词:

  1. from jieba import lcut
  2. print(list(lcut("中华人民共和国是一个伟大的国家", cut_all=True)))
复制代码


运行结果:

  1. ['中华', '中华人民', '中华人民共和国', '华人', '人民', '人民共和国', '共和', '共和国', '国是', '一个', '伟大', '的', '国家']
复制代码


来一首海子的《面朝大海,春暖花开》:

  1. from jieba import lcut
  2. from collections import Counter
  3. s = """从明天起做一个幸福的人
  4. 喂马劈柴周游世界
  5. 从明天起关心粮食和蔬菜
  6. 我有一所房子面朝大海春暖花开
  7. 从明天起和每一个亲人通信
  8. 告诉他们我的幸福
  9. 那幸福的闪电告诉我的
  10. 我将告诉每一个人
  11. 给每一条河每一座山取一个温暖的名字
  12. 陌生人我也为你祝福
  13. 愿你有一个灿烂的前程
  14. 愿你有情人终成眷属
  15. 愿你在尘世获得幸福
  16. 我只愿面朝大海春暖花开""".replace("\n", "")
  17. for k, v in sorted(Counter(lcut(s)).most_common(), key=lambda x: x[1], reverse=True):    # 逆序排序
  18.     print(k, v)
复制代码


执行结果:

  1. 的 6
  2. 我 6
  3. 一个 5
  4. 幸福 4
  5. 每 4
  6. 你 4
  7. 愿 4
  8. 从 3
  9. 明天 3
  10. 起 3
  11. 告诉 3
  12. 人 2
  13. 和 2
  14. 有 2
  15. 面朝 2
  16. 大海 2
  17. 春暖花开 2
  18. 做 1
  19. 喂 1
  20. 马 1
  21. 劈柴 1
  22. 周游世界 1
  23. 关心 1
  24. 粮食 1
  25. 蔬菜 1
  26. 一所 1
  27. 房子 1
  28. 亲人 1
  29. 通信 1
  30. 他们 1
  31. 那 1
  32. 闪电 1
  33. 将 1
  34. 给 1
  35. 一条 1
  36. 河 1
  37. 一座 1
  38. 山取 1
  39. 温暖 1
  40. 名字 1
  41. 陌生人 1
  42. 也 1
  43. 为 1
  44. 祝福 1
  45. 灿烂 1
  46. 前程 1
  47. 有情人终成眷属 1
  48. 在 1
  49. 尘世 1
  50. 获得 1
  51. 只 1
复制代码


用 Jieba 库统计三国演义中人物的出场次数:

三国演义.zip (713.44 KB, 下载次数: 3)

  1. from jieba import lcut
  2. from collections import Counter
  3. with open("三国演义.txt", encoding="utf-8") as f:
  4.     text = f.read()

  5. # 过滤掉所有一个字的词语,取前 15 个词
  6. for k, v in sorted(Counter(filter(lambda x: len(x) - 1, lcut(text))).most_common(15), key=lambda x: -x[1]):
  7.     print(k, v)
复制代码


运行结果:

  1. 曹操 934
  2. 孔明 831
  3. 将军 761
  4. 却说 647
  5. 玄德 569
  6. 关公 509
  7. 丞相 488
  8. 二人 465
  9. 不可 435
  10. 荆州 420
  11. 孔明曰 385
  12. 玄德曰 383
  13. 不能 383
  14. 如此 376
  15. 张飞 348
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-7 13:58:36 From FishC Mobile | 显示全部楼层
感觉平时用不到
大概有些特殊人再特定场合下能用到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-7 13:59:42 | 显示全部楼层
wp231957 发表于 2020-3-7 13:58
感觉平时用不到
大概有些特殊人再特定场合下能用到

嗯,比如制作词云时就用得到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 22:31:15 | 显示全部楼层
zltzlt 发表于 2020-3-7 13:59
嗯,比如制作词云时就用得到

这个情况应该是正常的:

  1. >>> from jieba import lcut
  2. >>> print(list(lcut("中华人名共和国是一个伟大的国家")))
  3. Building prefix dict from the default dictionary ...
  4. Dumping model to file cache C:\Users\Angel\AppData\Local\Temp\jieba.cache
  5. Loading model cost 0.766 seconds.
  6. Prefix dict has been built successfully.
  7. ['中华', '人', '名', '共和国', '是', '一个', '伟大', '的', '国家']
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 12:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表