我试图捕获句子内的三元关系,并最终捕获句子间的三元关系。
例如:截至2015年,2016年的净收入分别为200万美元和300万美元。
预期输出:(net revenues,$2.0 million,2015),(net revenues,$3.0 million,2016)
将此过程分为两个步骤
(net revenues,$2.0 million),(net revenues,$3.0 million),(net revenues,2016),(net revenues,2015)
lines=["8 10 ","8 18","8 22 ","8 28","8 31","12 37"]
g1=nx.parse_edgelist(lines,nodetype=int)
for ab in nx.clique.find_cliques(g1):
print(ab)
在不建立关系图的情况下,我想将边缘作为列表传递,看看是否找到任何线索,但输出与输入相同。在这种方法或其他方法上需要一些建议。
答案 0 :(得分:1)
nx.find_cliques
甚至在size == 2
中也可以在图中找到 all 组。这意味着此函数除返回图形集团外还返回所有边。您的图形如下所示:
它没有size >= 3
派系,因此nx.find_cliques
仅返回图形中的所有边。如果我们要添加此边缘:
"10 31"
import networkx as nx
lines = [
"8 10",
"8 18",
"8 22",
"8 28",
"8 31",
"12 37",
"10 31"
]
g1 = nx.parse_edgelist(lines, nodetype=int)
for ab in nx.clique.find_cliques(g1):
print(ab)
我们将有一个真正的集团:
[8, 10, 31]
[8, 18]
[8, 28]
[8, 22]
[12, 37]
我们可以使用size == 2
过滤出所有群体:
for ab in nx.clique.find_cliques(g1):
if len(ab) > 2:
print(ab)
所以我们只有一个size >= 3
集团:
[8, 10, 31]