# Revision history [back]

The lines

    i = S.index('word: ' + s1)
j = S.index('word: ' + s2)


should not need the prefix 'word: ', since words in S don't contain such prefix by the way it is defined.

Line 6, f.readline(), might just be discarding the first line of your input.

When you set M[i,j]=1 you might lose track of multiple edges, maybe changing it to M[i,j] += 1 will do.

Also, I guess the labels a, b and c are relevant, so to preserve labels you can just add an edge between s1 and s2 with label g.

Perhaps the following version might do the job

def my_digraph(filename):
f = open(filename, 'r')
D=DiGraph(loops=True,multiedges=True)
for c in f:
c = c[1:-2]
s1, g, s2 = c.split(', ')