pub trait Stemmer {
// Required method
fn stem(&self, word: &str) -> Result<String, AprenderError>;
// Provided method
fn stem_tokens<S: AsRef<str>>(
&self,
tokens: &[S],
) -> Result<Vec<String>, AprenderError> { ... }
}Expand description
Trait for stemming algorithms.
Stemmers reduce words to their root form by removing suffixes.
§Examples
use aprender::text::stem::{Stemmer, PorterStemmer};
let stemmer = PorterStemmer::new();
assert_eq!(stemmer.stem("running").expect("stem should succeed"), "run");
assert_eq!(stemmer.stem("flies").expect("stem should succeed"), "fli");Required Methods§
Sourcefn stem(&self, word: &str) -> Result<String, AprenderError>
fn stem(&self, word: &str) -> Result<String, AprenderError>
Stem a single word to its root form.
§Arguments
word- Input word to stem
§Returns
Ok(String)- Stemmed wordErr(AprenderError)- If stemming fails
§Examples
use aprender::text::stem::{Stemmer, PorterStemmer};
let stemmer = PorterStemmer::new();
assert_eq!(stemmer.stem("running").expect("stem should succeed"), "run");Provided Methods§
Sourcefn stem_tokens<S: AsRef<str>>(
&self,
tokens: &[S],
) -> Result<Vec<String>, AprenderError>
fn stem_tokens<S: AsRef<str>>( &self, tokens: &[S], ) -> Result<Vec<String>, AprenderError>
Stem multiple tokens.
§Arguments
tokens- Input tokens to stem
§Returns
Ok(Vec<String>)- Stemmed tokensErr(AprenderError)- If stemming fails
§Examples
use aprender::text::stem::{Stemmer, PorterStemmer};
let stemmer = PorterStemmer::new();
let words = vec!["running", "flies", "easily"];
let stemmed = stemmer.stem_tokens(&words).expect("stem should succeed");
assert_eq!(stemmed, vec!["run", "fli", "easili"]);Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.