如何在包含我不想在 perl 中使用 Lingua::Stem 的 add_exceptions($exceptions_hash_ref) 进行词干提取的可编辑文件中阅读?



我正在使用Perl的Lingua::Stem模块(Lingua::Stem),我希望有一个文本文件或其他可编辑的文件格式来包含我不想要词干的单词列表。我希望能够随时在文件中添加单词。

他们的例子显示:

add_exceptions($exceptions_hash_ref);

最好的方法是什么?

我在硬编码一些异常时使用了他们的方法,但我想用一个文件来做这件事。

# adding default exceptions
Lingua::Stem::add_exceptions({ 'emily' => 'emily',
                            'driven' => 'driven',
                        });

您可以定义一个函数来从给定文件加载异常:

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

假设您的"可编辑"文件是空白分隔的,如下所示:

emily emily
driven driven

您的代码可能是:

open my $fh, "<", "excep.txt" or die $!;
my $href = { map split, <$fh> };
Lingua::Stem::add_exceptions($href);

相关内容

最新更新