【问题标题】:How to only remove stopwords when they are not nouns?如何仅在不是名词时删除停用词?
【发布时间】:2016-07-30 08:55:39
【问题描述】:
我正在使用 Solr 5,需要删除停用词以防止过度匹配并避免使用高 IDF 术语使索引膨胀。然而,语料库包括很多零件编号和姓名首字母,例如“Steve A”和“123-OR-A”。在这些情况下,我不希望“A”和“OR”被停用词过滤器工厂删除,因为它们需要可搜索。
Stanford POS tagger 很好地检测到上述示例是名词而不是停用词,但这是解决我的问题的正确方法吗?
谢谢!
【问题讨论】:
标签:
solr
stanford-nlp
pos-tagger
【解决方案1】:
只有您可以决定这是否是正确的方法。如果您可以将 POS 标记器集成到其中并为您提供有用的结果 - 那很好。
但只是为了给您一个替代方案,您可以考虑复制您的字段并以不同方式处理它们。例如,如果您看到 123-OR-A 被拆分和停用词清除,这可能意味着您的分析器堆栈中有 WordDelimiterFilterFactory。该工厂有很多参数,您可以尝试调整。或者,您可以将您的内容 copyField 到另一个 (store=false) 字段并在没有 WordDelimiterFilterFactory 的情况下一起处理它。然后你搜索你的数据的两个副本,可能对不同的字段有不同的提升。