pyltp依存句法分析_NLP(十二)依存句法分析的可视化及图分析
摘要:
,'通信','领域','做出','的','贡献','。']ATT(2018,年)ATT(年,日)ATT(7,月)ATT(月,日)ATT(26,日)ADV(日,举行)WP(,,日)ATT(华为,创始人)ATT(创始人,任正非)SBV(任正非,举行)ADV(向,举行)ATT(5G极化码,之父)WP((,Po
依存句法分析的效果虽然没有像分词、NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道。笔者这几天一直在想如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析。
我们使用的NLP工具为jieba和LTP,其中jieba用于分词,LTP用于词性标注和句法分析,需要事件下载pos.model和parser.model文件。
本文使用的示例句子为:
raphviz仅仅只是一个可视化工具。那么,我们该用什么样的工具来进行图分析呢? 答案就是NetworkX。以下是笔者对于NetworkX应用于依存句法分析的可视化和图分析的展示,其中图分析展示了两
2018年7月26日,华为创始人任正非向5G极化码(Polar码)之父埃尔达尔教授举行颁奖仪式,表彰其对于通信领域做出的贡献。
r和Compile之间的通信桥梁,达到数据变化->视图更新;视图交互变化(input)->数据model变更的双向绑定效果。描述下vue从初始化页面--修改数据--刷新页面UI的过程?
首先,让我们来看一下没有可视化效果之前的句法分析结果。Python代码如下:
控DOM。 为什么React不精确监听数据变化呢?这是因为Vue和React设计理念上的区别,Vue使用的是可变数据,而React更强调数据的不可变。2.数据流的不同Vue中默认支持双向绑定
# -*- coding: utf-8 -*-
import os
import jieba
from pyltp import Postagger, Parser
sent = "2018年7月26日,华为创始人任正非向5G极化码(Polar码)之父埃尔达尔教授举行颁奖仪式,表彰其对于通信领域做出的贡献。"
jieba.add_word("Polar码")
jieba.add_word("5G极化码")
jieba.add_word("埃尔达尔")
jieba.add_word("之父")
words = list(jieba.cut(sent))
print(words)
# 词性标注
pos_model_path = os.path.join(os.path.dirname(__file__), "data/pos.model")
postagger = Postagger()
postagger.load(pos_model_path)
postags = postagger.postag(words)
# 依存句法分析
par_model_path = os.path.join(os.path.dirname(__file__), "data/parser.model")
parser = Parser()
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] # 匹配依存父节点词语
for i in range(len(words)):
print(relation[i] + "(" + words[i] + ", " + heads[i] + ")")
输出结果如下:
rsent="2018年7月26日,华为创始人任正非向5G极化码(Polar码)之父埃尔达尔教授举行颁奖仪式,表彰其对于通信领域做出的贡献。"jieba.add_word("P
["2018", "年", "7", "月", "26", "日", ",", "华为", "创始人", "任正非", "向", "5G极化码", "(", "Polar码", ")", "之父", "埃尔达尔", "教授", "举行", "颁奖仪式", ",", "表彰", "其", "对于", "通信", "领域", "做出", "的", "贡献", "。"]
ATT(2018, 年)
ATT(年, 日)
ATT(7, 月)
ATT(月, 日)
ATT(26, 日)
ADV(日, 举行)
WP(,, 日)
ATT(华为, 创始人)
ATT(创始人, 任正非)
SBV(任正非, 举行)
ADV(向, 举行)
ATT(5G极化码, 之父)
WP((, Polar码)
COO(Polar码, 5G极化码)
WP(), Polar码)
ATT(之父, 埃尔达尔)
ATT(埃尔达尔, 教授)
POB(教授, 向)
HED(举行, Root)
VOB(颁奖仪式, 举行)
WP(,, 举行)
COO(表彰, 举行)
ATT(其, 贡献)
ADV(对于, 做出)
ATT(通信, 领域)
POB(领域, 对于)
ATT(做出, 贡献)
RAD(的, 做出)
VOB(贡献, 表彰)
WP(。, 举行)
我们得到了该句子的依存句法分析的结果,但是其可视化效果却不好。
我们使用Graphviz工具来得到上述依存句法分析的可视化结果,代码(接上述代码)如下:
ds[i]=="Root":g.edge(words[i],"Root",label=relation[i])else:g.edge(heads[i],"Roo
from graphviz import Digraph
g = Digraph("测试图片")
g.node(name="Root")
for word in words:
g.node(name=word)
for i in range(len(words)):
if relation[i] not in ["HED"]:
g.edge(words[i], heads[i], label=relation[i])
else:
if heads[i] == "Root":
g.edge(words[i], "Root", label=relation[i])
else:
g.edge(heads[i], "Root", label=relation[i])
g.view()
得到的依存句法分析的可视化图片如下:
通信的桥梁,主要做的事情是:在自身实例化时往属性订阅器(dep)里面添加自己自身必须有一个update()方法待属性变动dep.notice()通知时,能调用自身的update()方法,并触发Comp
在这张图片中,我们有了对依存句法分析结果的直观感觉,效果也非常好,但是遗憾的是,我们并不能对上述可视化结果形成的图(Graph)进行图分析,因为Graphviz仅仅只是一个可视化工具。那么,我们该用什么样的工具来进行图分析呢?
答案就是NetworkX。以下是笔者对于NetworkX应用于依存句法分析的可视化和图分析的展示,其中图分析展示了两个节点之间的最短路径。示例的Python代码如下:
词性标注和句法分析,需要事件下载pos.model和parser.model文件。 本文使用的示例句子为:2018年7月26日,华为创始人任正非向5G极化码(Polar码)之父埃尔达尔教授举行颁奖仪
# 利用networkx绘制句法分析结果
import networkx as nx
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["Arial Unicode MS"] # 指定默认字体
G = nx.Graph() # 建立无向图G
# 添加节点
for word in words:
G.add_node(word)
G.add_node("Root")
# 添加边
for i in range(len(words)):
G.add_edge(words[i], heads[i])
source = "5G极化码"
target1 = "任正非"
distance1 = nx.shortest_path_length(G, source=source, target=target1)
print(""%s"与"%s"在依存句法分析图中的最短距离为: %s" % (source, target1, distance1))
target2 = "埃尔达尔"
distance2 = nx.shortest_path_length(G, source=source, target=target2)
print(""%s"与"%s"在依存句法分析图中的最短距离为: %s" % (source, target2, distance2))
nx.draw(G, with_labels=True)
plt.savefig("undirected_graph.png")
得到的可视化图片如下:
)如下:fromgraphvizimportDigraphg=Digraph("测试图片")g.node(name="Root")forwordinwords:g.no
输出的结果如下:
h,matched,name等路由信息参数。router是“路由实例对象”,包括了路由的跳转方法(push、replace),钩子函数等。说一下Vue和React的认识,做一个简单的对比1.监听数据变
"5G极化码"与"任正非"在依存句法分析图中的最短距离为: 6
"5G极化码"与"埃尔达尔"在依存句法分析图中的最短距离为: 2
本次到此结束,希望这篇简短的文章能够给读者带来一些启发~
;.js文件ES6语法-->ES5语法Sass,Less,Stylus-->CSS对jpg,png,font等静态资源的处理热更新定义环境变量,区分dev和production模式...如
注意:不妨了解下笔者的微信公众号: Python爬虫与算法(微信号为:easy_web_scrape), 欢迎大家关注~
ATT(之父,埃尔达尔)ATT(埃尔达尔,教授)POB(教授,向)HED(举行,Root)VOB(颁奖仪式,举行)WP(,,举行)COO(表彰,举行)ATT(其,贡献)ADV(对于,做出)ATT(通信
pyltp依存句法分析_NLP(十二)依存句法分析的可视化及图分析相关推荐
- 自然语言处理(NLP)之依存句法分析的可视化及图分析
依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析. 我们使用的NLP工 ...
- 十二个“一”的大五人格分析
十二个"一"的大五人格分析 一. 研究背景 上学期我们就十二个"一"进行了大量研究,其中有一项非常重要的数据,即对于十二个"一"的大五人格※ ...
- Excel数据分析从入门到精通(十二)28个图表之分布分析
Excel数据分析从入门到精通(十二)28个图表之分布分析 1.分布分析-直方图 2.分布分析-气泡矩阵图 3.分布分析-箱线图 4.分布分析-散点图 5.分布分析-旋风图 1.分布分析-直方图 有表 ...
- 【互动媒体】”十二个一“的文艺创作的文本分析与可视化
互动媒体的大作业之一.似乎一整个学期都在和这十二个一打交道,尝试了看待一个简单书法作品的多种维度,也发掘了诸如拟人化.拟物化等在内的多种其他视角.然而,不到期末我们就永远不知道这些数据最后将会去向哪里 ...
- 艺工交叉——雪梨针对十二个”一“感知评价实验的分析PART1:文献综述
在这一项作业当中,我们要在对十二个"一"感知评价的实验数据分析的基础上,完成对数项问题的解答. 实验模式:个人实验 姓名:冯媛 学号:1191170202 实验背景: 在之前一次趣 ...
- Hadoop(十二):从源码角度分析Hadoo是如何将作业提交给集群的
为什么80%的码农都做不了架构师?>>> 一:MapReduce提交作业过程的流程图 通过图可知主要有三个部分,即: 1) JobClient:作业客户端. 2) JobTra ...
- 【问链-区块链基础知识系列】 第十二课 区块链产业落地现状分析
摘要:结合鲸准研究院发布的2018区块链商业落地情况分析报告,然后加入了我参与和了解的区块链落地情况进行整理书写. 我们知道"2018年将是区块链真正与实体经济结合并爆发的一年." ...
- 笔记-编译原理-第十、十一、十二章、十三章-语法分析-自下而上分析
第10章 - 自下而上分析1 10.1 自下而上分析 10.1.1 自下而上分析的一个示例 可以看出自下而上分析的主要步骤是不断的用文法来"规约",最后找到一种句型的表示 10.1 ...
- 机器学习基础(三十二) —— 使用 Apriori 算法进行关联分析
Apriori 在拉丁语中指"来自以前".当定义问题时,通常会使用先验知识或者假设,这被称作"一个先验"(a priori).在贝叶斯统计中,使用先验知识作为条 ...
最新文章
- tomcat日志格式中的含义
- Linux学习之云服务器搭建嵌入式Linux开发环境
- cmd 日志刷新卡屏
- 计算机管理员账户不能创建新的用户名,win10为什么无法更改账户名称解决方法 win10系统管理员用户名更改...
- 用Layer.search快速查询图元
- 《程序设计技术》第五章例程
- 每日算法系列【LeetCode 289】生命游戏
- Windows XP 系统优化-百度转载
- 刘汝佳Dijkstra模板
- 深度学习笔记~集成方法bagging, boosting和stacking
- 从钢铁侠看Decorator 装饰者模式
- ProSpec 胶质源性神经营养因子人重组说明书
- 将Python代码打包成Windows 10的可执行文件
- Linux上安装VIM
- 2021年高级维修电工证考试题库,职业技能鉴定职业资格
- Python爬虫进阶必备 | 极X助手加密算法分析
- unknown类型的使用
- 职场上思路不清楚的人有多可怕
- LAB002 -Oracle数据库手工冷备份(归档模式)
- 软件项目管理学习(二)
热门文章
- word无法选定图片随文字移动
- the win16 subsystem was unable to enter protected mode,DOSX.EXE must be in your AUTOEXEC.NT and pres
- SAS初学者笔记---003---利用数据步读取数据--逻辑库
- proftpd mysql_Proftpd mysql认证配置文档
- 在Win32中使用OpenGL
- JavaScript的对象、属性与方法
- CentOS7密码忘记如何强制修改root密码
- 例题(8.3) 求一元二次方程的根 (1051)
- python学习相关软件
- 小班关于计算机运用的教案,关于信息技术在幼儿园的运用教案设计