0

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

他们的例子表明:

add_exceptions($exceptions_hash_ref);

做这个的最好方式是什么?

我使用他们的方法对一些异常进行硬编码,但我想用一个文件来做到这一点。

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

2 回答 2

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
于 2012-08-21T20:13:23.147 回答
1

假设您的“可编辑”文件是空格分隔的,如下所示:

emily emily
driven driven

您的代码可能是:

open my $fh, "<", "excep.txt" or die $!;
my $href = { map split, <$fh> };
Lingua::Stem::add_exceptions($href);
于 2012-08-21T20:16:03.523 回答