Add API to create segmenter from hashmaps directly
This commit is contained in:
parent
b85fc6adc2
commit
0d2930c408
17
src/lib.rs
17
src/lib.rs
|
@ -26,9 +26,22 @@ impl Segmenter {
|
||||||
U: Iterator<Item = (String, f64)>,
|
U: Iterator<Item = (String, f64)>,
|
||||||
B: Iterator<Item = ((String, String), f64)>,
|
B: Iterator<Item = ((String, String), f64)>,
|
||||||
{
|
{
|
||||||
|
Self::from_maps(unigrams.collect(), bigrams.collect())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create `Segmenter` from the given hashmaps (using ahash)
|
||||||
|
///
|
||||||
|
/// Note: the `String` types used in this API are defined in the `smartstring` crate. Any
|
||||||
|
/// `&str` or `String` can be converted into the `String` used here by calling `into()` on it.
|
||||||
|
/// The `HashMap` type here refers to `std::collections::HashMap` parametrized with the
|
||||||
|
/// `ahash::RandomState`.
|
||||||
|
pub fn from_maps(
|
||||||
|
unigrams: HashMap<String, f64>,
|
||||||
|
bigrams: HashMap<(String, String), f64>,
|
||||||
|
) -> Self {
|
||||||
Self {
|
Self {
|
||||||
unigrams: unigrams.collect::<HashMap<_, _>>(),
|
unigrams,
|
||||||
bigrams: bigrams.collect::<HashMap<_, _>>(),
|
bigrams,
|
||||||
limit: DEFAULT_LIMIT,
|
limit: DEFAULT_LIMIT,
|
||||||
total: DEFAULT_TOTAL,
|
total: DEFAULT_TOTAL,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue