1

オンライン コース ディスカッション フォーラムからの質問、回答、およびコメントを使用して、SNA プロジェクトのエッジリストを作成しようとしています。

エッジリストを作成するコードは次のとおりです。

# import libraries
import csv
import collections
from collections import defaultdict

def multi_dimensions(n, type):
  # """ Creates an n-dimension dictionary where the n-th dimension is of type 'type' 
  if n<=1:
    return type()
  return defaultdict(lambda:multi_dimensions(n-1, type))

edgelist = multi_dimensions(2,dict)

csv.field_size_limit(1600000)
f = open('/Users/samuelfinegold/Documents/harvard/edXresearch/snaCreationFiles/time_series/time_series.csv','rU')
reader = csv.DictReader(f, delimiter=',')

for line in reader:
    # edgelist
    if line['types'] == 'Question':
        #print 'T'
        source = line['author_id']
    else:
        edgelist[source]['target'] = line['author_id']
        edgelist[source]['start_time'] = line['time']

コンテキストの csv は次のとおりです。

post_id thread_id   author_id       types   time    votes_up    votes_down  posters
1       0            Jan         Question     3/1/12 10:45  5   1   Jan, Janet, Jack
2       0            Janet       Answer   3/1/12 11:00  2   1   Jan, Janet, Jack
3       0            Jack        Comment      3/2/12 8:00   0   0   Jan, Janet, Jack
4       1            Jason       Question     3/4/12 9:00   3   1   Jason, Jan, Janet
5       1            Jan         Answer   3/7/12 1:00   3   1   Jason, Jan, Janet
6       1            Janet       Answer   3/7/12 2:00   1   2   Jason, Jan, Janet

そして、ここに私が私のエッジリストのために得ているものがあります:

source  target  time
Jan         Jack    999
Jason   Janet   999

何がそんなに時間の違いを引き起こしているのか、私にはわかりません。

望ましい出力:

source     target     start_time
Jan        Janet      3/1/12 11:00
Jan        Jack       3/2/12 8:00
Jason      Jan        3/7/12 1:00
Jason      Janet      3/7/12 2:00

時間は、回答またはコメントが投稿された時間であることに注意してください。動的 SNA グラフに精通している方は、なぜ終了時刻がないのか疑問に思うかもしれません。これは、簡単にするために、各投稿の終了時刻が同じ列を手動で追加するだけなので、グラフに消失が表示されないためです。

4

0 に答える 0