HI~I have modified the code as you said, but it still deal with the text as a whole, and export the tone of the whole text, the output is like this:
%neutral:given this focus execut area can control continu provid high valu product lowest total cost a detail discuss risk uncertainti caus actual result event differ materi forward look statement incluthese forward look statement general identifi word believe project expect anticipate estimate intend certain statement management discuss analysi md&a pure histor information includ estimates projections statement relat busi plans objectives expect oper results assumpt upon statement based forward look statements within mean privat secur litig reform act 1995 section 27a secur act 1933 section 21e secur exchang act 1934.
the out put is the tone of the whole text and all the sentence in which the full stop of each sentence were removed from the text. you may need the code,the code is like this:
#!/usr/bin/perl
use warnings;
use Algorithm::NaiveBayes;
my $pos_file = '/Users/Agnes/Documents/positive.TXT';
my $neg_file = '/Users/Agnes/Documents/negative.txt';
my $neu_file = '/Users/Agnes/Documents/neutral.txt';
my $categorizer = Algorithm::NaiveBayes->new;
my $fh;
open($fh,"<",$pos_file) or die "Could not open $pos_file: $!";
while (my $sentence = <$fh>) {
chomp $sentence;
my @words = split(' ',$sentence);
my %positive;
$positive{$_}++ for @words;
$categorizer->add_instance(
attributes => \%positive,
label => 'positive');
}
close($fh);
open($fh,"<",$neg_file) or die "Could not open $neg_file: $!";
while (my $sentence = <$fh>) {
chomp $sentence;
my @words = split(' ',$sentence);
my %negative;
$negative{$_}++ for @words;
$categorizer->add_instance(
attributes => \%negative,
label => 'negative');
}
close($fh);
open($fh,"<",$neu_file) or die "Could not open $neg_file: $!";
while (my $sentence = <$fh>) {
chomp $sentence;
my @words = split(' ',$sentence);
my %neutral;
$neutral{$_}++ for @words;
$categorizer->add_instance(
attributes => \%neutral,
label => 'neutral');
}
close($fh);
$categorizer->train;
my $sentence_file = '/Users/Agnes/Documents/process_sentence.txt';
open($fh,"<",$sentence_file) or die "Could not open $sentence_file: $!
+";
while (my $sentence = <$fh>) {
chomp $sentence;
my @words = split(' ',$sentence);
my %test;
$test{$_}++ for @words;
my $probability = $categorizer->predict(attributes => \%test);
if ( $probability->{positive} > 1/3 ) {
print "%positive:$sentence\n";
}
if ( $probability->{negative} > 1/3 ) {
print "%negative:$sentence\n";
}
if ( $probability->{neutral} > 1/3 ) {
print "%neutral:$sentence\n";
}
}
close($fh);
# if ( $probability->{negative} > 1/3 ) {
#print "%negative\n";
#}
#if ( $probability->{neutral} > 1/3 ) {
# print "%neutral\n";
#}
I do not know what should I do next. It will be very kind of you to help me to solve this problem. Thank you!! |