当前位置:   article > 正文

哈工大PYLTP安装使用教程_哈工大ltp安装教程

哈工大ltp安装教程

一、环境

win10,python 3.6,vs2017

二、离线安装

pip install pyltp未安装成功

1、下载:

https://github.com/hit-scir/pyltp

https://github.com/hit-scir/ltp

2、将下载后的ltp文件夹,复制并覆盖pyltp文件夹里面的ltp文件夹

3、cd到pyltp文件夹

执行:

python setup.py build(需要较长时间)

python setup.py install

在cmd中 pip list 可查看是否安装成功

三、下载ltp模型(3.4.0)

http://ltp.ai/download.html

ltp_data_v3.4.0.zip

解压后1G多

四、使用

  1. import os
  2. from pyltp import NamedEntityRecognizer
  3. from pyltp import Segmentor
  4. from pyltp import Postagger
  5. ROOT_PATH = "D:/model/ltp-model/ltp_data_v3.4.0/"
  6. # LTP 采用 BIESO 标注体系。
  7. # B 表示实体开始词,I表示实体中间词,E表示实体结束词,S表示单独成实体,O表示不构成命名实体。
  8. # LTP 提供的命名实体类型为:人名(Nh)、地名(Ns)、机构名(Ni)。
  9. # B、I、E、S位置标签和实体类型标签之间用一个横线 - 相连;O标签后没有类型标签。
  10. # https://pyltp.readthedocs.io/zh_CN/latest/api.html#id21
  11. def ltp_ner(sentence):
  12. print("句子长度:{0}".format(len(sentence)))
  13. seg_model = os.path.join(ROOT_PATH,"cws.model")
  14. pos_model = os.path.join(ROOT_PATH,"pos.model")
  15. ner_model = os.path.join(ROOT_PATH,"ner.model")
  16. # 分词
  17. segmentor = Segmentor()
  18. segmentor.load(seg_model)
  19. words = segmentor.segment(sentence)
  20. segmentor.release()
  21. word_list = list(words)
  22. print(word_list)
  23. # 词性标注
  24. postagger = Postagger()
  25. postagger.load(pos_model)
  26. postags = postagger.postag(words)
  27. postagger.release()
  28. # 实体识别
  29. recognizer = NamedEntityRecognizer()
  30. recognizer.load(ner_model)
  31. netags = recognizer.recognize(words,postags)
  32. recognizer.release()
  33. tag_list = list(netags)
  34. print(tag_list)
  35. # 人名
  36. nh_list = []
  37. # 地名
  38. ns_list = []
  39. # 机构名
  40. ni_list = []
  41. flag = False
  42. entity = ""
  43. for i,tag in enumerate(tag_list):
  44. # 单独实体
  45. if tag[0] == 'S':
  46. tag_type = tag.split('-')[1]
  47. if tag_type == 'Nh':
  48. nh_list.append(word_list[i])
  49. if tag_type == 'Ns':
  50. ns_list.append(word_list[i])
  51. if tag_type == 'Ni':
  52. ni_list.append(word_list[i])
  53. # 非单独实体
  54. if tag[0] == 'B':
  55. flag = True
  56. entity += word_list[i]
  57. if tag[0] == 'I':
  58. entity += word_list[i]
  59. if tag[0] == 'E':
  60. entity += word_list[i]
  61. tag_type = tag.split('-')[1]
  62. if tag_type == 'Nh':
  63. nh_list.append(entity)
  64. if tag_type == 'Ns':
  65. ns_list.append(entity)
  66. if tag_type == 'Ni':
  67. ni_list.append(entity)
  68. flag = False
  69. entity = ""
  70. print(nh_list)
  71. print(ns_list)
  72. print(ni_list)
  73. if __name__ == "__main__":
  74. sentence = "《流浪地球》是由中国电影股份有限公司、北京京西文化旅游股份有限公司、北京登峰国际文化传播有限公司、郭帆文化传媒(北京)有限公司出品的科幻片,由郭帆执导,吴京特别出演,屈楚萧、李光洁、吴孟达、赵今麦领衔主演。该片于2019年2月5日(农历大年初一)在中国内地上映。"
  75. ltp_ner(sentence)

结果:

  1. ['《', '流浪', '地球', '》', '是', '由', '中国', '电影', '股份', '有限公司', '、', '北京', '京西', '文化', '旅游', '股份', '有限公司', '、', '北京
  2. ', '登峰', '国际', '文化', '传播', '有限公司', '、', '郭帆', '文化', '传媒', '(', '北京', ')', '有限公司', '出品', '的', '科幻片', ',', '由', '郭帆', '执导', ',', '吴', '京', '特别', '出演', ',', '屈楚萧', '、', '李光洁', '、', '吴孟达', '、', '赵今麦', '领衔', '主演', '。', '该片', '于
  3. ', '2019年', '2月', '5日', '(', '农历', '大年初一', ')', '在', '中国', '内地', '上映', '。']
  4. ['O', 'O', 'O', 'O', 'O', 'O', 'B-Ni', 'I-Ni', 'I-Ni', 'E-Ni', 'O', 'B-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'E-Ni', 'O', 'B-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'E-Ni', 'O', 'B-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'E-Ni', 'O', 'O', 'O', 'O', 'O', 'S-Nh', 'O', 'O', 'S-Nh', 'O', 'O', 'O', 'O', 'S-Nh', 'O', 'S-Nh', 'O', 'S-Nh', 'O', 'S-Nh', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'S-Ns', 'O', 'O', 'O']
  5. ['郭帆', '吴', '屈楚萧', '李光洁', '吴孟达', '赵今麦']
  6. ['中国']
  7. ['中国电影股份有限公司', '北京京西文化旅游股份有限公司', '北京登峰国际文化传播有限公司', '郭帆文化传媒(北京)有限公司']

五、参考:

安装:

https://blog.csdn.net/weixin_40899194/article/details/79702468

词性:

https://ltp.readthedocs.io/zh_CN/latest/appendix.html#id4

使用方法:

https://pyltp.readthedocs.io/zh_CN/latest/api.html#id21

下载:

http://ltp.ai/download.html

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号