python - 如何在 Python 上制作描述 WordNet 的同义词集 (NLTK) 的图表
问题描述
我在这里完全是个菜鸟,所以请原谅我的罪过。这就是问题所在:即使我只是从名为“使用 Python 进行自然语言处理”的手册中复制粘贴了一段代码,我还是找不到一种方法来制作我将在下面发布的代码的图表。我的“唯一”目标是在我的论文中展示代码如何与 WordNet 中的图形交互。这是代码:
# Natural Language Toolkit: code_networkx
import networkx as nx
import matplotlib
from nltk.corpus import wordnet as wn
def traverse(graph, start, node):
graph.depth[node.name] = node.shortest_path_distance(start)
for child in node.hyponyms():
graph.add_edge(node.name, child.name) # [_add-edge]
traverse(graph, start, child) # [_recursive-traversal]
def hyponym_graph(start):
G = nx.Graph() # [_define-graph]
G.depth = {}
traverse(G, start, start)
return G
def graph_draw(graph):
nx.draw_graphviz(graph,
node_size = [16 * graph.degree(n) for n in graph],
node_color = [graph.depth[n] for n in graph],
with_labels = False)
matplotlib.pyplot.show()
>>> dog = wn.synset('dog.n.01')
>>> graph = hyponym_graph(dog)
>>> graph_draw(graph)
没有弹出错误,但这里仍然没有图表。请原谅我的信息长度,但我真的在你的手中!:/
解决方案
它不起作用,因为您依赖于graphviz。这是一个有效的示例用法:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.petersen_graph()
nx.draw(G)
plt.show()
因此,您应该执行以下操作:
def graph_draw(graph):
nx.draw_shell(graph)
matplotlib.pyplot.show()
链接到官方文档。
推荐阅读
- multithreading - 存储多线程函数调用输出的最佳方式
- python - Tensorflow 精度指标未初始化
- java - 遍历多个数组列表并获取元素
- reactjs - 我正在上有关创建 Slack 聊天的视频课程,现在我遇到了一些问题
- .htaccess - Htacess 多语言
- python - Dlib 面点出现在 thresh 中
- swift - 如何将 Blender 制作的动画加载到 ARKit?
- python - Python; 使用套接字时如何解决 ConnectionRefusedError
- sql - postgresql 查询中的问题
- java - 无法使用 java 代码执行 Jmeter