我正在使用二分图分析我在给定主题和地理位置上下载的推文的网络和语义值。
使用 Python,我创建了一个 .net 文件,其中包含 2 组节点和边。该文件是我单独创建的文件的合并:2 组顶点和边。问题是创建 .net 文件的 Edges 组件。
我有 3 个文件:
- 带有发件人/高音扬声器(“号码/ID”和“姓名”)的tweeterers.csv
- words.csv,带有我从推文中提取的语义标签/单词。格式为“编号/ID”和“名称”,“编号”从上述文件的最后一个“编号”开始。每行有 0 到 6 个单词
- Names_Text_full_clean.csv,带有高音扬声器和单词。每行包含 1 个高音扬声器的名称和 0 到 6 个单词 该文件将为我提供高音扬声器和单词之间的关联,用于图表。
我基本上阅读每个高音喇叭,阅读一个单词,阅读是否有关联。如果是,我写关联(这是一个优势)。是三环。这对于中等规模的网络来说非常缓慢:一个拥有约 650 个节点和约 18000 个边缘的网络在 Mac Mini 2.7GHz 四核上花了我将近 2 天的时间。
任何加速它的帮助将不胜感激!
以下是代码:
import csv # csv library is to handle csv files
# open the twetterers file and make it available in 'reader1'
file_read1 = open('tweeterers.csv', 'rU')
reader1 = csv.reader(file_read1)
# open the file for writing and make it available in 'writer'
file_write=open('edges.csv', 'wb')
writer=csv.writer(file_write)
for sender in reader1:
file_read2 = open('words.csv', 'rU')
reader2 = csv.reader(file_read2)
for word in reader2:
file_read = open('Names_Text_full_clean.csv', 'rU')
reader = csv.reader(file_read)
for match in reader:
for elem in range (1,len(match)):
if sender[1] == match [0]:
if word [1] == match [elem]:
a = sender[0],word[0]
writer.writerow(a)
print "I wrote a record: it's: ",a
file_read.close()
file_read1.close()
file_read2.close()
file_write.close()