首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyLucene的自定义停用词

PyLucene的自定义停用词
EN

Stack Overflow用户
提问于 2013-02-08 05:20:06
回答 1查看 413关注 0票数 1

在PyLucene中,有一个名为StopFilter的过滤器,它根据给定的停用字过滤令牌。示例调用如下所示:

代码语言:javascript
复制
result = StopFilter(True, result, StopAnalyzer.ENGLISH_STOP_WORDS_SET)

看起来应该很容易替换停用词集合的参数,但这实际上有点挑战性:

代码语言:javascript
复制
>>> 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,无法实现:

代码语言:javascript
复制
>>> Set()

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

其他地方建议使用PyLucene附带的PythonSet,但事实证明这不是Set的实例,不能与StopFilter一起使用。

如何给StopFilter一组新的停用词?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 05:20:06

在写这个问题的过程中,我发现了这个问题的答案,这个问题是通过pylucene dev列表上的这个线程来实现的:

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

您可以使用自定义列表定义StopFilter,如下所示:

代码语言:javascript
复制
mystops = HashSet(Arrays.asList(['a','b','c']))
result = StopFilter(True, result, mystops)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14761186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档