This module encapsulates "The C version of the libstemmer library" from the Snowball project. This library provides stemmers in a variety of languages. The interface to this library is very simple:
Here is an example:
?- snowball(english, walking, S). S = walk.
The implementation maintains a cache of stemmers for each thread that accesses snowball/3, providing high-perfomance and thread-safety without locking.
Algorithm | is the (english) name for desired algorithm or an 2 or 3 letter ISO 639 language code. |
Input | is the word to be stemmed. It is either an atom, string or list of chars/codes. The library accepts Unicode characters. Input must be lowercase. See downcase_atom/2. |
domain_error(snowball_algorithm, Algorithm)
type_error(atom, Algorithm)
type_error(text, Input)
semidet
if Algorithm is given.