我正在使用networkx中的图表,这是代码:
import networkx as nx
from collections import OrderedDict
import codecs
g = nx.DiGraph()
sadrzaj= list()
dat = codecs.open("petra.txt", "r")
for rijec in dat.read().split():
sadrzaj.append(rijec)
for i, rijec in enumerate(sadrzaj):
try:
sljedeca_rijec = sadrzaj[i+1]
if not g.has_node(rijec):
g.add_node(rijec)
g.node[rijec]['pojavljivanje'] = 1
else:
g.node[rijec]['pojavljivanje'] += 1
if not g.has_node(sljedeca_rijec):
g.add_node(sljedeca_rijec)
g.node[sljedeca_rijec]['pojavljivanje'] = 0
if rijec.endswith('\n') == False:
if not g.has_edge(rijec,sljedeca_rijec):
g.add_edge(rijec,sljedeca_rijec,weight = 1)
else:
g.edge[rijec][sljedeca_rijec]['weight'] +=1
except IndexError:
if not g.has_node(rijec):
g.add_node(rijec)
g.node[rijec]['pojavljivanje'] = 1
else:
g.node[rijec]['pojavljivanje'] += 1
except:
raise
for u,v in g.nodes(data = True):
print " Cvor " , u , " pojavljuje se: " , v , " puta."
for u,v,d in g.edges(data = True):
print "Veza *",u," - ",v,"* ima tezinu: ",d
dat.close()
但部分原因: 如果rijec.endswith('\ n')== False: python不识别txt文档中的\ n,所以我得到句子中的最后一个单词和另一个句子中的第一个单词之间的边缘。
在txt文件中没有任何句子。 ,? !,只有字母,每个新句子都在新行中。
我做错了什么?