【发布时间】:2018-08-01 17:42:17
【问题描述】:
我刚刚开始编码,并试图了解 NetworkX 的工作原理。我有一个包含文档和主题列的 Pandas DataFrame。 topics 列指示每个文档(行)中是否存在主题。
df = pd.DataFrame({'DOC': ['Doc_A', 'Doc_B', 'Doc_C', 'Doc_D', 'Doc_E'], 'topic_A': [0,0,1,0,0], 'topic_B': [1,0,0,1,0], 'topic_C': [0,1,1,1,0]})
DOC topic_A topic_B topic_C
0 Doc_A 0 1 0
1 Doc_B 0 0 1
2 Doc_C 1 0 1
3 Doc_D 0 1 1
4 Doc_E 0 0 0
我想做的是创建以下网络:
1) 文档是节点,边是主题(没有权重),所以同一个节点有多个边。
2) 文档是节点,边是主题,但不是有多条边,而是根据它们共有多少个主题来对边进行加权。
我该怎么做?我在这里的想法是否正确?
【问题讨论】:
-
您有一条只有一个节点的边 (Topic_A)。边应该有两个节点。我认为您的数据框不会生成有效的网络。不过我可能错了。
-
我知道,但我不明白如何从这些事件中创建边缘!
-
在图论中,边只存在于两个节点之间。所以,你不能有一个你称之为边缘的主题,它至少有两个文档。
-
我想这可能是X-Y problem。
-
谢谢斯科特,我明白你的意思了。我将尝试重新表述:如何创建一个表格,其中文档中主题的共现表示为边?