1

PyLucene には、StopFilter特定のストップワードに基づいてトークンをフィルター処理するというフィルターがあります。呼び出しの例は次のとおりです。

result = StopFilter(True, result, StopAnalyzer.ENGLISH_STOP_WORDS_SET)

一連のストップ ワードの引数を置き換えるのは簡単なように思えますが、実際には少し難しいです。

>>> StopAnalyzer.ENGLISH_STOP_WORDS_SET

<Set: [but, be, with, such, then, for, no, will, not, are, and, their, if, this, on, into, a, or, there, in, that, they, was, is, it, an, the, as, at, these, by, to, of]>

これは でありSet、実装できません:

>>> Set()

NotImplementedError: ('instantiating java class', <type 'Set'>)

PythonSetPyLucene に付属の a を使用することが他の場所で提案されましたが、これは a のインスタンスではなく、 aSetでは使用できないことが判明しましたStopFilter

StopFilterどうすれば新しいストップワードのセットを与えることができますか?

4

1 に答える 1

1

ピルセン開発リストのこのスレッドを介してこの質問を書いている途中で、これに対する答えを発見しました:

http://mail-archives.apache.org/mod_mbox/lucene-pylucene-dev/201202.mbox/thread

StopFilter次のように、カスタム リストを使用して を定義できます。

mystops = HashSet(Arrays.asList(['a','b','c']))
result = StopFilter(True, result, mystops)
于 2013-02-07T21:20:05.830 に答える