代码之家  ›  专栏  ›  技术社区  ›  bortzmeyer

防止PostgreSQL中专有名词的词干生成?

  •  3
  • bortzmeyer  · 技术社区  · 16 年前

    stemm tokens into lexemes ,PostgreSQL全文搜索引擎也减少专有名词。例如:

    essais=> select to_tsquery('english', 'bortzmeyer');
    to_tsquery 
    ------------
    'bortzmey'
    
    essais=> select to_tsquery('english', 'balling');
    to_tsquery 
    ------------
    'ball'
    (1 row)
    

    至少对于第一个,我肯定它不在英语字典里!避免这种虚假词干的更好方法是什么?

    2 回复  |  直到 16 年前
        1
  •  4
  •   Jasper Bekkers    16 年前

    词干算法的要点是 把每个字都缩成适当的词干;其目标是将相似的单词简化为共同的词干形式。目标通常不是要得到一个可以呈现给用户的词:即使“balling”和“ball”都会产生“kjebnkekaa”,该算法是正确的,因为它仍然认为“balling”和“ball”通常涉及同一事物。

    还要注意,没有词干算法是绝对完美的,更多信息 look up the Porter Stemming algorithm

        2
  •  2
  •   codelogic    16 年前

    这是由于所解释的雪球式茎干分析器造成的 here . 基本上,您希望禁用Snowball词干分析器,只使用iSpell或其他字典之一,但这也会降低字典中没有的单词的词干分析效率。