gpt4 book ai didi

python - 如何使用 Graph::Easy 将频率得分的权重分配给图形的边缘

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:45 25 4
gpt4 key购买 nike

如何使用 Graph::Easy 为图的边缘分配权重或频率分数?

我有一个二元组及其频率列表。我可以使用 Graph::Easy 轻松创建只有二元组的(数学)图。输出正是我想要的。但是当我尝试“set_attribute”时,我收到一条错误消息,提示“'frequency' 不是有效的属性名称”。我究竟做错了什么?使用 Graph::Easy,如何使频率成为有效属性?

#!/usr/bin/perl

# graph.pl - given a list of bigrams and their frequencies, output graphml

# require
use Graph::Easy;
use strict;

# initialize
my $graph = Graph::Easy->new;

# process the data
while ( <DATA> ) {

# parse
chop;
my ( $nodes, $frequency ) = split( "\t", $_ );
my ( $source, $target ) = split( ' ', $nodes );

# update the graph
my $edge = $graph->add_edge( $source, $target );

# error happen here
$edge->set_attribute( 'frequency', $frequency );

}

# output & done
print $graph->as_graphml();
exit;


# a set of bigrams and their frequencies
__DATA__
cds classroom 4
maximum registration 4
may want 3
anomalies within 2
resulting analysis 2
participants may 2
corpus without 2
journal articles 2
quickly learn 2
active reading 2
text mining 2
literally count 2
find patterns 2
14 million 2
digital humanities 2
humanities research 2

最佳答案

我试了一下这个模块,它似乎不接受任意的“属性”,而只接受一组特定的预定义属性。显然“频率”不是它们中的任何一个。

我从 documentation 中挑选了一个样本并替换了你的

$edge->set_attribute( 'frequency', $frequency );

$edge->set_attribute( 'label', $frequency );

因为他们经常在示例中提到 label

print $graph->as_ascii();

然后打印:

+--------------+  2   +--------------+
| 14 | ---> | million |
+--------------+ +--------------+
+--------------+ 2 +--------------+ 2 +----------+
| digital | ---> | humanities | ---> | research |
+--------------+ +--------------+ +----------+
+--------------+ 2 +--------------+ 3 +----------+
| participants | ---> | may | ---> | want |
+--------------+ +--------------+ +----------+
...

这就是你想要的吗?


最终我找到了 complete documentation对于图::简单。 Attributes section列出允许的属性。我很确定有一种方法可以拥有自定义属性,因为该模块有一个方法 get_custom_attributes .

关于python - 如何使用 Graph::Easy 将频率得分的权重分配给图形的边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47661180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com