原文:link

直接pip容易报错,直接下载wpl安装 600MB左右
链接:百度云
提取码:2021

小Demo

  1. import os
  2. import csv
  3. from pyltp import SentenceSplitter # 分句
  4. from pyltp import Segmentor # 分词
  5. from pyltp import Postagger # 词性标注
  6. from pyltp import NamedEntityRecognizer # 命名实体识别
  7. from pyltp import Parser # 依存句法
  8. from pyltp import SementicRoleLabeller # 语义角色标注
  9. class LtpLanguageAnalysis(object):
  10. def __init__(self, model_dir="./ltp_data/"):
  11. self.segmentor = Segmentor() # 分词
  12. self.segmentor.load(os.path.join(model_dir, "cws.model"))
  13. self.postagger = Postagger() # 词性标注
  14. self.postagger.load(os.path.join(model_dir, "pos.model"))
  15. self.parser = Parser() # 依存句法分析
  16. self.parser.load(os.path.join(model_dir, "parser.model"))
  17. self.recognizer = NamedEntityRecognizer() # 命名实体识别
  18. self.recognizer.load(os.path.join(model_dir, "ner.model"))
  19. self.labeller = SementicRoleLabeller() # 语义角色标注
  20. self.labeller.load(os.path.join(model_dir, "pisrl_win.model"))
  21. def analyze(self, content):
  22. # 分句
  23. texts = SentenceSplitter.split(content)
  24. print('\n'.join(texts))
  25. for text in texts:
  26. print("————————————————————")
  27. print("当前文本:{}".format(text))
  28. # 分词
  29. words = self.segmentor.segment(text)
  30. words_str = '\t'.join(words)
  31. print("[分词]")
  32. print(words_str)
  33. # 词性标注
  34. postags = self.postagger.postag(words)
  35. postags_str = '\t'.join(postags)
  36. print("[词性标注]")
  37. print(postags_str)
  38. # 依存句法分析
  39. arcs = self.parser.parse(words, postags)
  40. arcs_str = "\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs)
  41. print("[依存句法分析]")
  42. print(arcs_str)
  43. # 命名实体识别
  44. netags = self.recognizer.recognize(words, postags) # 命名实体识别
  45. netags_str = '\t'.join(netags)
  46. print("[命名实体识别]")
  47. print(netags_str)
  48. # 语义角色标注
  49. roles = self.labeller.label(words, postags, arcs) # 语义角色标注
  50. for role in roles:
  51. print("[语义角色标注]")
  52. print(role.index, "".join(["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments]))
  53. def release_model(self):
  54. # 释放模型
  55. self.segmentor.release()
  56. self.postagger.release()
  57. self.parser.release()
  58. pass
  1. # 输出结果
  2. “十三五”时期是全面建成小康社会决胜阶段,是重庆发展进程中极不平凡的五年。
  3. 最具战略指引意义的是,习近平总书记两次亲临重庆视察指导并对重庆提出系列重要指示要求, 为我们指明了前进方向、注入了强大动力;
  4. 最具里程碑意义的是, 党中央作出推动成渝地区双城经济圈建设的重大决策部署,为重庆赋予了战略使命、带来了重大机遇;
  5. 最具历史性意义的是,脱贫攻坚战取得重大胜利,重庆人民与全国人民一道,告别延续千年的绝对贫困;
  6. 最具根本性意义的是,我市经济由高速增长转向高质量发展,发展质量效益不断提升;
  7. 最具标志性意义的是,城乡面貌发生显著变化,人民生活水平大幅提高。
  8. ————————————————————
  9. 当前文本:“十三五”时期是全面建成小康社会决胜阶段,是重庆发展进程中极不平凡的五年。
  10. [分词]
  11. 十三五 时期 全面 建成 小康 社会 决胜 阶段 重庆 发展 进程 平凡
  12. [词性标注]
  13. wp m wp n v a v n n v n wp v ns v n nd d d a u m q wp
  14. [依存句法分析]
  15. 2:WP 4:ATT 2:WP 5:SBV 0:HED 7:ADV 5:VOB 9:ATT 11:ATT 11:ATT 7:VOB 5:WP 5:COO 16:ATT 16:ATT 17:ATT 23:ATT 20:ADV 20:ADV 23:ATT 20:RAD 23:ATT 13:VOB 5:WP
  16. [命名实体识别]
  17. O O O O O O O O O O O O O S-Ns O O O O O O O O O O
  18. ————————————————————
  19. 当前文本:最具战略指引意义的是,习近平总书记两次亲临重庆视察指导并对重庆提出系列重要指示要求, 为我们指明了前进方向、注入了强大动力;
  20. [分词]
  21. 战略 指引 意义 习近平 总书记 亲临 重庆 视察 指导 重庆 提出 系列 重要 指示 要求 我们 指明 前进 方向 注入 强大 动力
  22. [词性标注]
  23. d v n v n u v wp nh n m q v ns v v c p ns v n a n v wp p r v u v n wp v u a n wp
  24. [依存句法分析]
  25. 2:ADV 7:SBV 4:SBV 2:VOB 4:VOB 4:RAD 0:HED 7:WP 10:ATT 13:SBV 12:ATT 13:ADV 7:VOB 13:VOB 13:COO 15:COO 20:ADV 20:ADV 18:POB 13:COO 23:ATT 23:ATT 20:VOB 20:VOB 13:WP 28:ADV 26:POB 13:COO 28:RAD 31:ATT 28:VOB 33:WP 28:COO 33:RAD 36:ATT 33:VOB 7:WP
  26. [命名实体识别]
  27. O O O O O O O O S-Nh O O O O S-Ns O O O O S-Ns O O O O O O O O O O O O O O O O O O
  28. ————————————————————
  29. 当前文本:最具里程碑意义的是, 党中央作出推动成渝地区双城经济圈建设的重大决策部署,为重庆赋予了战略使命、带来了重大机遇;
  30. [分词]
  31. 里程碑 意义 党中央 作出 推动 成渝 地区 双城 经济圈 建设 重大 决策 部署 重庆 赋予 战略 使命 带来 重大 机遇
  32. [词性标注]
  33. d v n n u v wp ni v v j n ns n v u a n v wp p ns v u n n wp v u a n wp
  34. [依存句法分析]
  35. 2:ADV 6:SBV 4:ATT 2:VOB 2:RAD 0:HED 6:WP 9:SBV 6:VOB 19:ATT 12:ATT 14:ATT 14:ATT 15:FOB 10:VOB 15:RAD 18:ATT 19:FOB 9:VOB 9:WP 23:ADV 21:POB 9:COO 23:RAD 26:ATT 23:VOB 28:WP 23:COO 28:RAD 31:ATT 28:VOB 6:WP
  36. [命名实体识别]
  37. O O O O O O O S-Ni O O O O S-Ns O O O O O O O O S-Ns O O O O O O O O O O
  38. ————————————————————
  39. 当前文本:最具历史性意义的是,脱贫攻坚战取得重大胜利,重庆人民与全国人民一道,告别延续千年的绝对贫困;
  40. [分词]
  41. 历史性 意义 脱贫 攻坚战 取得 重大 胜利 重庆 人民 全国 人民 一道 告别 延续 绝对 贫困
  42. [词性标注]
  43. d v n n u v wp v n v a v wp ns n p n n d wp v v m q u d a wp
  44. [依存句法分析]
  45. 2:ADV 6:SBV 4:ATT 2:VOB 2:RAD 0:HED 6:WP 9:ATT 10:SBV 6:VOB 12:ATT 10:VOB 10:WP 15:ATT 19:SBV 19:ADV 18:ATT 16:POB 21:ADV 19:WP 10:COO 21:VOB 24:ATT 22:CMP 22:RAD 27:ADV 22:VOB 6:WP
  46. [命名实体识别]
  47. O O O O O O O O O O O O O S-Ns O O O O O O O O O O O O O O
  48. ————————————————————
  49. 当前文本:最具根本性意义的是,我市经济由高速增长转向高质量发展,发展质量效益不断提升;
  50. [分词]
  51. 根本性 意义 我市 经济 高速 增长 转向 质量 发展 发展 质量 效益 不断 提升
  52. [词性标注]
  53. d v n n u v wp n n p d v v a n v wp v n n d v wp
  54. [依存句法分析]
  55. 2:ADV 6:SBV 4:ATT 2:VOB 2:RAD 0:HED 6:WP 9:ATT 18:SBV 18:ADV 12:ADV 10:POB 12:COO 15:ATT 16:SBV 13:VOB 10:WP 6:VOB 20:ATT 18:VOB 22:ADV 18:COO 6:WP
  56. [命名实体识别]
  57. O O O O O O O O O O O O O O O O O O O O O O O
  58. ————————————————————
  59. 当前文本:最具标志性意义的是,城乡面貌发生显著变化,人民生活水平大幅提高。
  60. [分词]
  61. 标志性 意义 城乡 面貌 发生 显著 变化 人民 生活 水平 大幅 提高
  62. [词性标注]
  63. d v n n u v wp n n v a v wp n v n d v wp
  64. [依存句法分析]
  65. 2:ADV 6:SBV 4:ATT 2:VOB 2:RAD 0:HED 6:WP 9:ATT 10:SBV 6:VOB 12:ATT 10:VOB 10:WP 15:ATT 16:ATT 18:SBV 18:ADV 10:COO 6:WP
  66. [命名实体识别]
  67. O O O O O O O O O O O O O O O O O O O