単語のリストがあり、それらが動詞/形容詞/名詞/などであるかどうかに応じて、それらを異なるグループにグループ化したい. だから、基本的に私は単語が動詞/名詞などであるかどうかを伝えるPerlモジュールを探しています.
私はグーグルで検索しましたが、探しているものが見つかりませんでした。ありがとう。
CPAN の Lingua::EN:: 名前空間を参照してください。具体的には、Link GrammarとおそらくLingua::EN::Taggerが役に立ちます。また、WordNet はその種の情報を提供し、この perl モジュールを使用してクエリを実行できます。
コードperlに従って、フォルダ内のテキストファイルでこれらすべてを見つけるのに役立ちます。ディレクトリのパスのみを指定すると、すべてのファイルが一度に処理され、結果がreport.txtファイルに強力なテキストで保存されます
#!/usr/local/bin/perl
# for loop execution
# Perl Program to calculate Factorial
sub fact
{
# Retriving the first argument
# passed with function calling
my $x = $_[0];
my @names = @{$_[1]};
my $length = $_[2];
# checking if that value is 0 or 1
if ($x < $length)
{
#print @names[$x],"\n";
use Lingua::EN::Fathom;
my $text = Lingua::EN::Fathom->new();
# Analyse contents of a text file
$dirlocation="./2015/";
$path =$dirlocation.$names[$x];
$text->analyse_file($path); # Analyse contents of a text file
$accumulate = 1;
# Analyse contents of a text string
$text->analyse_block($text_string,$accumulate);
# TO Do, remove repetition
$num_chars = $text->num_chars;
$num_words = $text->num_words;
$percent_complex_words = $text->percent_complex_words;
$num_sentences = $text->num_sentences;
$num_text_lines = $text->num_text_lines;
$num_blank_lines = $text->num_blank_lines;
$num_paragraphs = $text->num_paragraphs;
$syllables_per_word = $text->syllables_per_word;
$words_per_sentence = $text->words_per_sentence;
# comment needed
%words = $text->unique_words;
foreach $word ( sort keys %words )
{
# print("$words{$word} :$word\n");
}
$fog = $text->fog;
$flesch = $text->flesch;
$kincaid = $text->kincaid;
use strict;
use warnings;
use 5.010;
my $filename = 'report.txt';
open(my $fh, '>>', $filename) or die "Could not open file '$filename' $!";
say $fh $text->report;
close $fh;
say 'done';
print($text->report);
$x = $x+1;
fact($x,\@names,$length);
}
# Recursively calling function with the next value
# which is one less than current one
else
{
done();
}
}
# Driver Code
$a = 0;
@names = ("John Paul", "Lisa", "Kumar","touqeer");
opendir DIR1, "./2015" or die "cannot open dir: $!";
my @default_files= grep { ! /^\.\.?$/ } readdir DIR1;
$length = scalar @default_files;
print $length;
# Function call and printing result after return
fact($a,\@default_files,$length);
sub done
{
print "Done!";
}