windows下安装pyltp:1、下载python对应版本的pyltp wheel文件(以python3.6为例)2、在wheel文件所在的目录打开cmd,输入命令 pip install pyltp-0.2.1-cp36-cp36m-win_amd64.whl
下载开源的ltp_data文件(包括ltp训练好的模型):1、下载地址https://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569#list/path=%2F(有多个版本,以3.4.0为例)2、cws.model 分词模型ner.model 实体识别模型parser.model 句法分析模型pisrl_win.model 语义角色标注模型pos.model 词性标注模型version 3.4.0
句法分析需要调用的模型(依次调用):1、cws.model2、pos.model3、parser.model注:各模型具体调用方法参见https://pyltp.readthedocs.io/zh_CN/latest/api.html
句法分析图:1、安装nltk pip install nltk2、from nltk import DependencyGraph3、conlltree = DependencyGraph(par_result)  # 转换为依存句法图tree = conlltree.tree()  # 构建树结构tree.draw()  # 显示输出的树注:par_result为调用ltp模型生成的结果

程序如下:

import sys, os
from pyltp import *from nltk import DependencyGraphclass LtpParsing(object):def __init__(self, model_dir='ltp_data'):self.segmentor = Segmentor()self.segmentor.load(os.path.join(model_dir, "cws.model"))self.postagger = Postagger()self.postagger.load(os.path.join(model_dir, "pos.model"))self.parser = Parser()self.parser.load(os.path.join(model_dir, "parser.model"))def par(self, infilm, outfilm):input_data = open(infilm, 'r', encoding='utf-8')output_data = open(outfilm, 'w+', encoding='utf=8')for line in input_data.readlines():line = line.strip()# 分词words = self.segmentor.segment(line)# self.segmentor.load_with_lexicon('lexicon')  # 使用自定义词典,lexicon外部词典文件路径# print('分词:' + '\t'.join(words))# 词性标注postags = self.postagger.postag(words)# print('词性标注:' + '\t'.join(postags))# 句法分析arcs = self.parser.parse(words, postags)rely_id = [arc.head for arc in arcs]  # 提取依存父节点idrelation = [arc.relation for arc in arcs]  # 提取依存关系heads = ['Root' if id == 0 else words[id - 1] for id in rely_id]  # 匹配依存父节点词语output_data.write(line)output_data.write('\n')output_data.write('句法分析:')par_result = ''for i in range(len(words)):if arcs[i].head == 0:arcs[i].relation = "ROOT"par_result += "\t" + words[i] + "(" + arcs[i].relation + ")" + "\t" + postags[i] + "\t" + str(arcs[i].head) + "\t" + arcs[i].relation + "\n"output_data.write(relation[i] + '(' + words[i] + ', ' + heads[i] + ')' + '\n')# print(par_result)conlltree = DependencyGraph(par_result)  # 转换为依存句法图tree = conlltree.tree()  # 构建树结构tree.draw()  # 显示输出的树output_data.write('\n')input_data.close()output_data.close()def release_model(self):# 释放模型self.segmentor.release()self.postagger.release()self.parser.release()if __name__ == '__main__':infilm = 'infilm.txt'outfilm = 'outfilm.txt'ltp = LtpParsing()ltp.par(infilm, outfilm)ltp.release_model()

输入文件为:

我叫李明,在清华读书。
多年来,中希贸易始终处于较低的水平,希腊几乎没有在中国投资。

输出文件:

我叫李明,在清华读书。
句法分析:SBV(我, 叫)
HED(叫, Root)
VOB(李明, 叫)
WP(,, 叫)
ADV(在, 读书)
POB(清华, 在)
COO(读书, 叫)
WP(。, 叫)多年来,中希贸易始终处于较低的水平,希腊几乎没有在中国投资。
句法分析:ATT(多, 年)
ADV(年, 处于)
RAD(来, 年)
WP(,, 年)
ATT(中, 贸易)
COO(希, 中)
SBV(贸易, 处于)
ADV(始终, 处于)
HED(处于, Root)
ADV(较, 低)
ATT(低, 水平)
RAD(的, 低)
VOB(水平, 处于)
WP(,, 处于)
SBV(希腊, 投资)
ADV(几乎, 投资)
ADV(没有, 投资)
ADV(在, 投资)
POB(中国, 在)
COO(投资, 处于)
WP(。, 处于)

句法图:

pyltp实现句法分析并画出句法图相关推荐

  1. 下如何画出频率瀑布图_用maftools一行代码画出瀑布图

    昨天本科的一个师姐问我关于瀑布图的画法,想要画个瀑布图,问我有没有有什么工具可以画的,目标图如下 于是给师姐介绍了maftools这个R包,这个R包功能非常强大,可以做各种各样的图,今天就拿瀑布图为例 ...

  2. 如何用 canvas 画出分形图

    前言 分形是一门以非规则几何形态为研究对象的几何学,由曼德勃 罗(B.B.Mandelbrot)等人创立并命名. 分形图从整体上看,是处处不规律的.但从局部观察,图形的规则性又是相同的,即具有自相似的 ...

  3. Visio画出方格图,并且在里面添加东西

    1.打开Visio,首先画一个方格图 2.选中上图中的方格,然后在图上的搜索栏中输入 "排列形状",如图所示 3.弹出的对话框中编辑自己想要的方格形式,如 4.生成的表格如下图所示 ...

  4. html5画布画出折线图,canvas 画出动态折线图

    canvas 是 html5 支持的一个标签,用于图形的绘制.canvas 标签仅仅提供了图形的容器,必须通过 js 脚本来绘制. 比如,绘制一个简单的矩形: 矩形.png var c=documen ...

  5. python画折线图详解-利用python画出折线图

    本文实例为大家分享了python画折线图的具体代码,供大家参考,具体内容如下 # encoding=utf-8 import matplotlib.pyplot as plt from pylab i ...

  6. python画折线图-利用python画出折线图

    本文实例为大家分享了python画折线图的具体代码,供大家参考,具体内容如下 # encoding=utf-8 import matplotlib.pyplot as plt from pylab i ...

  7. python画出的图_Python 画出来六维图

    来自维基百科 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 p ...

  8. minitab画出主效应图并画出等值线图

    2022/10/9学习心得 本文主要参照文章"Single and multi-objective optimization for cutting force and surface ro ...

  9. python画太极八卦图_CAD怎么画出八卦图? cad画完整太极八卦图的教程

    对于初学者来说,在CAD里画一个简易的八卦图可能感觉较困难,这个困难指的不是你不会画,而是你对CAD的思路还不够清晰,下面我就带着你通过几个简单的步骤即可实现八卦图的绘制. 软件名称:autocad2 ...

  10. matlab标志,使用MATLAB画出的图上面出现一个标志,不知道是怎么出现的

    程序我运行了没有问题,但是画的图上面有个vpR的标志,我在程序里没有看到这个语句,不知道为什么会出现,希望能去掉. clear; clc; close all; vp1=1000/171; vs1=1 ...

最新文章

  1. Verilog篇(三)仿真原理
  2. Win10 配置 TensorFlow-gpu 深度学系框架
  3. 在EXCEL里如何输入X的平方
  4. MYSQL数据库VALUES_MySQL数据库“十宗罪”(十大经典错误案例)
  5. jQuery四大选择器以及过滤选择器:的详解
  6. IBM将收购Red Hat:面向Java的初衷
  7. Diango博客--20.开启 Django 博客的 RSS 功能
  8. nginx开发(二)配置mp4文件在线播放
  9. chown无效的用户mysql_mysql 从库设置read-only 对super权限的用户无效的问题
  10. 三星 android驱动安装失败,三星安卓手机usb驱动安装教程
  11. QoBean的元语言系统(一)
  12. 编辑图片加文字的软件哪个好?这三个软件还不错
  13. 华大单片机-HC32L13X系列芯片OPA配置-芯虎论坛
  14. Base64在线转换工具(详解)
  15. 红米4a android 9 速度,小米-红米4A/5A-通刷-LOS-Beta5.0-安卓9.0.0-来去电归属-农历等-本地化增强适配...
  16. Revit SDK EXTENSIONS(软件开发工具包扩展)是什么
  17. 噩梦射手(SurvivalShooter)教程(二)
  18. 读取第n行python_Python如何一次读取N行
  19. PPT如何直接转换为word
  20. 360数科沈赟:坏账率仅0.2%,精细化全周期智能风控让欺诈无所遁形

热门文章

  1. Elasticsearch7 mapping和setting简介
  2. 阿铭Linux_网站维护学习笔记20190408
  3. 计算机二级python刷题软件排行榜_计算机二级office刷题软件求推荐?
  4. mysql二级软件_全国计算机等级考试二级MySQL练习软件
  5. 正则表达式匹配以xx开头以xx结尾
  6. 查看服务器阵列卡型号6,怎么查看 dell 阵列卡型号#如何通过服务器自检画面的信息查看当前阵列卡的型号...
  7. IKBC poker 2更换WIN键与ALT键(option键与command键)
  8. mouse是计算机软件吗,手机控制电脑软件(EasyMouse)手机端
  9. 不知道PDF文件怎么解密?推荐3个实用方法给你
  10. z2屏幕坏如何从计算机导出数据,闪回收-手机屏幕坏了如何导出数据?手机屏幕坏了怎么用电脑控制?...