使用Python3.10库在绘图中使用WordNet和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)
... traverse(graph, start, child)
...
>>> def hyponym_graph(start):
... G = nx.Graph()
... G.depth = ()
... traverse(G, start, start)
... return G
>>> import nltk
>>> nltk.download('omw-1.4')
[nltk_data] Downloading package omw-1.4 to
[nltk_data] C:\Users\User\AppData\Roaming\nltk_data...
True用WordNet文本语料库构建图形
>>> dog = wn.synset('dog.n.01')
>>> graph = hyponym_graph(dog)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in hyponym_graph
File "<stdin>", line 2, in traverse
TypeError: 'tuple' object does not support item assignment
>发布于 2022-08-27 16:37:56
G.depth = ()正在图G上创建一个新属性(名为depth),并将其设置为等于(),这是一个空元组。
不过,下面是在traverse函数中使用该属性的方式:
graph.depth[node.name] = node.shortest_path_distance(start)基于这一点和您得到的错误消息,TypeError: 'tuple' object does not support item assignment,我认为您可能希望将depth属性初始化为空dict,而不是空元组。
G.depth = {}或
G.depth = dict()https://stackoverflow.com/questions/73485518
复制相似问题