#nlp #stemming #information-retrieval #language #retrieval

rust-stemmers

A rust implementation of some popular snowball stemming algorithms

6 releases (stable)

Uses old Rust 2015

1.2.0 Nov 17, 2019
1.1.0 Jan 24, 2019
1.0.2 Dec 30, 2017
1.0.1 Aug 22, 2017
0.1.0 Feb 7, 2017

#101 in Algorithms

Download history 113555/week @ 2024-06-14 167625/week @ 2024-06-21 152930/week @ 2024-06-28 129569/week @ 2024-07-05 133416/week @ 2024-07-12 127719/week @ 2024-07-19 135035/week @ 2024-07-26 119850/week @ 2024-08-02 100713/week @ 2024-08-09 101018/week @ 2024-08-16 101360/week @ 2024-08-23 86827/week @ 2024-08-30 91633/week @ 2024-09-06 87234/week @ 2024-09-13 96783/week @ 2024-09-20 74313/week @ 2024-09-27

369,649 downloads per month
Used in 207 crates (28 directly)

MIT/BSD-3-Clause

2.5MB
19K SLoC

Rust Stemmers

This crate implements some stemmer algorithms found in the snowball project which are compiled to rust using the rust-backend of the snowball compiler.

Supported Algorithms

  • Arabic
  • Danish
  • Dutch
  • English
  • French
  • German
  • Greek
  • Hungarian
  • Italian
  • Norwegian
  • Portuguese
  • Romanian
  • Russian
  • Spanish
  • Swedish
  • Tamil
  • Turkish

Usage

extern crate rust_stemmers;
use rust_stemmers::{Algorithm, Stemmer};

// Create a stemmer for the english language
let en_stemmer = Stemmer::create(Algorithm::English);

// Stemm the word "fruitlessly"
// Please be aware that all algorithms expect their input to only contain lowercase characters.
assert_eq!(en_stemmer.stem("fruitlessly"), "fruitless");

Related Projects

  • The stemmer crate provides bindings to the C Snowball implementation.

lib.rs:

This library provides rust implementations for some stemmer algorithms written in the snowball language.

All algorithms expect the input to already be lowercased.

Usage

[dependencies]
rust-stemmers = "^1.0"
extern crate rust_stemmers;

use rust_stemmers::{Algorithm, Stemmer};

fn main() {
   let en_stemmer = Stemmer::create(Algorithm::English);
   assert_eq!(en_stemmer.stem("fruitlessly"), "fruitless");
}

Dependencies