「ストップワード」の配列をロードするPerlファイルを作成しました。
次に、「。ner」ファイルが含まれているディレクトリにロードします。各ファイルが開かれ、各単語が分割され、停止ファイル内の単語と比較されます。単語が単語と一致する場合は、「」に変更されます(何もありません-削除されます)。次に、ファイルを別の場所にコピーします。したがって、ストップワードのあるファイルとストップワードのないファイルを区別できます。しかし、これによりファイルがストップワードを含まないように変更されますか、それとも元に戻りますか?
#!/usr/bin/perl
#use strict;
#use warnings;
my @stops;
my @file;
use File::Copy;
open( STOPWORD, "/Users/jen/stopWordList.txt" ) or die "Can't Open: $!\n";
@stops = <STOPWORD>;
while (<STOPWORD>) #read each line into $_
{
chomp @stops; # Remove newline from $_
push @stops, $_; # add the line to @triggers
}
close STOPWORD;
$dirtoget="/Users/jen/temp/";
opendir(IMD, $dirtoget) || die("Cannot open directory");
@thefiles= readdir(IMD);
foreach $f (@thefiles){
if ($f =~ m/\.ner$/){
print $f,"\n";
open (FILE, "/Users/jen/temp/$f")or die"Cannot open FILE";
if ( FILE eq "" ) {
close FILE;
}
else{
while (<FILE>) {
foreach $word(split(/\|/)){
foreach $x (@stops) {
if ($x =~ m/\b\Q$word\E\b/) {
$word = '';
copy("/Users/jen/temp/$f","/Users/jen/correct/$f")or die "Copy failed: $!";
close FILE;
}
}
}
}
}
}
}
closedir(IMD);
exit 0;
分割して比較しているファイルの形式は次のとおりです。
'<title>|NN|O Woman|NNP|O jumped|VBD|O for|IN|O life|NN|O after|IN|O firebomb|NN|O attack|NN|O -|:|O National|NNP|I-ORG News|NNP|I-ORG ,|,|I-ORG Frontpage|NNP|I-ORG -|:|I-ORG Independent.ie</title>|NNP|'
単語を分割する場所、つまりsplit(/ | /)の概要を説明する必要がありますか?