import os
from pyltp import Parser
from pyltp import Segmentor
from pyltp import Postagger
from pyltp import SentenceSplitter


LTP_DATA_DIR = '.\\ltp-3.3.1-win-x86\\ltp_data'
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')
pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model')
par_model_path = os.path.join(LTP_DATA_DIR, 'parser.model')

segmentor = Segmentor()
parser = Parser()
postagger = Postagger()

segmentor.load_with_lexicon(cws_model_path, 'ltp-3.3.1-win-x86\\ltp_data\\seg_lexicon.txt') 
segmentor.load(cws_model_path)
words = segmentor.segment('缆桩底座螺栓锈蚀严重,螺栓保护防锈沥青或水泥脱落。')  
word_list = list(words)

postagger.load(pos_model_path)
postags = postagger.postag(word_list) 

parser.load(par_model_path)
arcs = parser.parse(words, postags)  

rely_id = [arc.head for arc in arcs]           # 提取依存父节点id
relation = [arc.relation for arc in arcs]      # 提取依存关系
heads = ['Root' if id == 0 else words[id-1] for id in rely_id]     # 匹配依存父节点词语

print(len(relation),len(words),len(heads))
for i in range(len(word_list)):
    print (relation[i] + '(' + word_list[i] + ', ' + heads[i] + ')')

segmentor.release()
parser.release() 
postagger.release()

 

结果:

pyltp使用

相关文章:

  • 2022-12-23
  • 2021-09-21
  • 2022-12-23
  • 2021-04-27
  • 2021-08-16
  • 2021-11-29
  • 2021-10-03
  • 2021-10-20
猜你喜欢
  • 2021-08-06
  • 2021-09-27
  • 2022-03-01
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
相关资源
相似解决方案