Snowball 是一种小型字符串处理语言,用于创建用于信息检索的词干算法,以及使用它实现的词干算法的集合。
Snowball 最初由马丁·波特设计和制造。 Martin 于 2014 年退出开发,Snowball 现在作为社区项目进行维护。 Martin 最初选择 Snowball 这个名字是为了向 SNOBOL 致敬,SNOBOL 是 20 世纪 60 年代优秀的字符串处理语言。现在,它也象征着项目如何通过随着时间的推移收集贡献来发展。
Snowball 编译器将 Snowball 程序翻译为另一种语言的源代码 - 目前支持 Ada、ISO C、C#、Go、Java、Javascript、Object Pascal、Python 和 Rust。
该存储库包含雪球编译器和词干算法的源代码。 Snowball 编译器是用 ISO C 编写的 - 您需要一个支持 C99 的 C 编译器来构建它(但它生成的 C 代码应该适用于任何 ISO C 编译器)。
有关 Snowball 的更多信息,请参阅 https://snowballstem.org/。
词干分析将同一单词的不同形式映射到一个共同的“词干” - 例如,英语词干分析器将connection 、 connections 、 connective 、 connected和connecting映射到connect 。因此,搜索连接也会找到仅具有其他形式的文档。
这种词干形式通常是单词本身,但情况并非总是如此,因为这不是文本搜索系统的要求,而文本搜索系统是预期的使用领域。我们还旨在将具有相同含义的单词混为一谈,而不是所有具有共同语言词根的单词(因此awe和可怕的词干不具有相同的词干),并且词干过度比词干不足更成问题,因此我们倾向于不这样做解决难以解决的案件。如果您总是想将单词简化为词根形式和/或获得词根形式本身就是单词,那么 Snowball 的词干提取算法可能不是正确的答案。