В 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'>)
В другом месте было предложено использовать PythonSet
, который поставляется с PyLucene, но оказалось, что это не экземпляр Set
, и его нельзя использовать с StopFilter
.
Как можно дать StopFilter
новый набор стоп-слов?