初期の現代英語のテキストをステミングしたい:
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」の問題をここに貼り付けることができます)
さて、ばかげた質問です。変数を変更するにはどうすればよいですか? 変数を探したところどこでも、「オブジェクトに属性がありません」というメッセージが表示され続けます...