Я создал файл 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|'
Должен ли я указать, где слова должны быть разделены, т.е.