我创建了一个 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(/|/)?