| Summary | Included libraries | Package variables | Synopsis | Description | General documentation | Methods |
| Summary | Top |
| Clair::Network::AdamicAdar - Calculate the adamic/adar value for the CLAIR Library |
| Package variables | Top |
| No package variables defined. |
| Included modules | Top |
| Carp |
| Inherit | Top |
| Unavailable |
| Synopsis | Top |
| This module calculate adamic/adar value for each pair of nodes in a network. |
| Description | Top |
| This is a class for computing adamic/adar value. |
| Methods | Top |
| new | Description | Code |
| printNodeTable | No description | Code |
| printNodeTerms | Description | Code |
| printResult | Description | Code |
| printTermNodes | No description | Code |
| readCorpus | Description | Code |
| new | code | next | Top |
| $aa = new Clair::Network::AdamicAdar(); Creates a AdamicAdar class. |
| printNodeTerms | code | prev | next | Top |
| print each node and the terms contained in each node. |
| printResult | code | prev | next | Top |
| print each aa value to the standard output |
| readCorpus | code | prev | next | Top |
| read corpus into AdamicAdar class and calculate the adamic/adar value. Returns a two dimensional hash, stored the value between any two nodes. Note: in order to save space, each value is stored at one node pair, which is in ascend order. So $result->{$a}->{$b} will return the value, $result->{$b}->{$a} won't |
| new | description | prev | next | Top |
sub new
{ my $class = shift;
my $self = {};
bless($self, $class);
return $self;} |
| printNodeTable | description | prev | next | Top |
sub printNodeTable
{ my $self = shift;
my $nodeNodes = $self->{nodeNodes};
foreach $node(sort keys %nodeNodes) {
foreach $node1 (sort keys %{$nodeNodes{$node}}) {
print "$node\t$node1\n";
}
}} |
| printNodeTerms | description | prev | next | Top |
sub printNodeTerms
{ my $self = shift;
my $nodeTerms = $self->{nodeTerms};
foreach $node(sort keys %nodeTerms) {
print "$node:\n";
foreach $term(sort keys %{$nodeTerms{$node}}) {
print "\t$term\n";
}
}} |
| printResult | description | prev | next | Top |
sub printResult
{ my $self = shift;
my $result = $self->{nodeNodes};
foreach $key(keys %{$result}) {
foreach $key1(keys %{$result->{$key}}) {
print "$key\t$key1\t$result->{$key}->{$key1}\n";
}
}} |
| printTermNodes | description | prev | next | Top |
sub printTermNodes
{ my $self = shift;
my $termNodes = $self->{termNodes};
foreach $term(sort keys %termNodes) {
foreach $node(sort keys %{$termNodes{$term}}) {
print "$term\t$node\n";
}
}} |
| readCorpus | description | prev | next | Top |
sub readCorpus
{ my $self = shift;
my $folderName = shift;
my %nodeTerms = ();
my %termNodes = ();
my %nodeNodes = ();
@files;
opendir DH, $folderName or die "can't open the folder: $!";
while (defined($file = readdir(DH))) {
unless ($file =~ /^\.\.?$/) {
push(@files, $file);
}
}
closedir DH;
foreach $fileName (@files) {
open(FH, "< $folderName/$fileName");
while(my $attr=<FH>) {
chomp($attr);
next unless($attr =~ /(\W|\D)+/);
$termFrequency{$attr}++;
unless (defined $nodeTerms{$fileName}{$attr}) {
$nodeTerms{$fileName}{$attr} = 1;
}
unless (defined $termNodes{$attr}{$fileName}) {
$termNodes{$attr}{$fileName} = 1;
}
}
}
foreach $node(@files) {
foreach $term (keys %{$nodeTerms{$node}}) {
foreach $node1 (keys %{$termNodes{$term}}) {
if ($node lt $node1) {
$nodeNodes{$node}{$node1}+=1/log($termFrequency{$term});} |
| AUTHOR | Top |
| Chen, Huang << <clair at umich.edu> >> |
| BUGS | Top |
| Please report any bugs or feature requests to bug-clair-document at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=clairlib-dev. I will be notified, and then you will automatically be notified of progress on your bug as I make changes. |