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 に答える