2

初期の現代英語のテキストをステミングしたい:

sb.stem("loveth")
>>> "lov"

どうやら、私がする必要があるのは、Snowball Stemmer を微調整することだけです。

エンディングを英語のステマーに入れるには、リスト

edly ingly ingly

ステップ 1b の

edly ingly est eth edly ingly est eth

Snowball スクリプトに関する限り、末尾の 'ing' に対して末尾の 'est' 'eth' を追加する必要があります。

すばらしいので、変数を変更するだけです。おそらく、「thee」/「thou」/「you」および「shall」/「shall」を扱う特別なルールを追加します。NLTK のドキュメントでは、変数を次のように示しています。

クラスnltk.stem.snowball.EnglishStemmer(ignore_stopwords=False)

ベース: nltk.stem.snowball._StandardStemmer

英語の Snowball ステマー。

変数:

__vowels – 英語の母音。

__double_consonants – 英語の二重子音。

__li_ending – 語尾の「li」の直前に現れる文字。

__step0_suffixes – アルゴリズムのステップ 0 で削除されるサフィックス。

__step1a_suffixes – アルゴリズムのステップ 1a で削除されるサフィックス。

__step1b_suffixes – アルゴリズムのステップ 1b で削除されるサフィックス。(どうぞ)

__step2_suffixes – アルゴリズムのステップ 2 で削除されるサフィックス。

__step3_suffixes – アルゴリズムのステップ 3 で削除されるサフィックス。

__step4_suffixes – アルゴリズムのステップ 4 で削除されるサフィックス。

__step5_suffixes – アルゴリズムのステップ 5 で削除されるサフィックス。

__special_words – 特別にステミングする必要がある単語を含む辞書。(「thee」/「thou」と「sholt」の問題をここに貼り付けることができます)

さて、ばかげた質問です。変数を変更するにはどうすればよいですか? 変数を探したところどこでも、「オブジェクトに属性がありません」というメッセージが表示され続けます...

4

1 に答える 1