zip
を使用すると、文章内の連続する単語間の適切なペアを作成することで、これを簡単にすることができます。代わりにadd_edge
も使用します。これにより、ノードが自動的に追加されるためです。 add_edge
の3番目のパラメータには、オブジェクトの一意のエッジを識別するために使用できるkey
パラメータを使用できます。私はあなたの.csv
ファイルの形式が正確であるか分かりませんので、次の例では(word, POS)
のタプルを含むリストとして文を渡しています。お役に立てれば!
from collections import defaultdict
import networkx as nx
G = nx.MultiGraph()
sentence = [
("what", "WP"),
("makes", "VBZ"),
("them", "PRP"),
("do", "VB"),
("it", "PRP"),
]
for pair0, pair1 in zip(sentence[:-1], sentence[1:]):
w0, t0 = pair0
w1, t1 = pair1
edge_key = "{0} {1}".format(w0, w1)
G.add_edge(t0, t1, edge_key)
print(G.nodes)#['WP', 'VBZ', 'PRP', 'VB']
print(G.edges)#[('WP', 'VBZ', 'what makes'), ('VBZ', 'PRP', 'makes them'), ('PRP', 'VB', 'them do'), ('PRP', 'VB', 'do it')]
回答ありがとうございました! –