повысить эффективность функции graph () при чтении txt-файла в python с использованием библиотеки networkx - PullRequest
0 голосов
/ 07 мая 2018

У меня есть текстовый файл с 150000 строк, каждая с числовым идентификатором (т.е. 1,2,3 ...)

Каждая строка имеет какое-то отношение к другой строке, то есть идентификатор этой строки либо упоминается в других строках, либо упоминает другие строки в ней.

Например

#1 - string #24 #11
#11 - string #24 #25
#245 - string #1 #11

Таким образом, в этом случае строки 1 и 11 упоминаются в строке 245, но в строке 1 также упоминается строка 11 и т. Д.

Я сопоставляю весь текстовый файл, используя import networkx as nx и функцию G=nx.Graph(), чтобы позже манипулировать отношениями между различными узлами и ребрами.

Я пытаюсь понять, как сделать это более эффективным, время выполнения в настоящее время очень длинное (час +), и я пытаюсь понять, является ли эта функция причиной продолжительного времени выполнения:

 G=nx.Graph()
  for l in txt:
    res = re.findall("#\d{3,10}",l)
    if len(res) > 1:
      for num in res[1:]:
        G.add_edge(res[0],num)
  return G

Есть ли способ сделать его более эффективным?

...