我正在使用Perl的Lingua :: Stem模块(Lingua::Stem),我希望有一个文本文件或其他可编辑的文件格式,以包含我不想要阻止的单词列表。我希望能够随时在文件中添加单词。
他们的例子显示:
add_exceptions($exceptions_hash_ref);
这样做的最佳方式是什么?
我在硬编码一些例外中使用了他们的方法,但我想用文件来做这件事。
# adding default exceptions
Lingua::Stem::add_exceptions({ 'emily' => 'emily',
'driven' => 'driven',
});
答案 0 :(得分:2)
您可以定义一个函数来加载给定文件中的异常:
sub load_exceptions {
my $fname = shift;
my %list;
open (my $in, "<", $fname) or die("load_exceptions: $fname");
while (<$in>) {
chomp;
$list{$_} = $_;
}
close $in;
return \%list;
}
并使用它:
Lingua::Stem::add_exceptions(load_exceptions("notstem.txt"));
示例输入文件:
emily
driven
答案 1 :(得分:1)
假设您的“可编辑”文件是空格分隔的,如下所示:
emily emily
driven driven
您的代码可能是:
open my $fh, "<", "excep.txt" or die $!;
my $href = { map split, <$fh> };
Lingua::Stem::add_exceptions($href);