1 个不稳定版本
使用旧的Rust 2015
0.0.1 | 2016年3月23日 |
---|
#38 在 #classification
24KB
356 代码行
langid-rs
用Rust编写的基于N-gram的文本分类器。
由于缺少预训练模型和适当的文档,它尚未完全准备好使用。
用法
使用预训练模型进行分类
使用glob crate 获取文件列表。文件名将用作模型名。
extern crate langid;
extern crate glob;
use langid::Classifier;
use glob::glob;
fn main() {
let paths = glob("./language_profiles/*.json").unwrap().filter_map(Result::ok);
let classifier = Classifier::from_files(paths);
let language = classifier.classify("Sample text that you want classified.");
println!("Sample language: {}", language);
}
动态训练和分类
extern crate langid;
use langid::Classifier;
fn main() {
let first_language_training_text = "...";
let second_language_training_text = "...";
let mut classifier = Classifier::new();
classifier.train(first_language_training_text, "first");
classifier.train(second_language_training_text, "second");
let language = classifier.classify("Sample in the first language.");
println!("Sample language: {}", language);
}
训练
运行 cargo install langid
获取 langid
CLI 工具。
langid train [-o FILE] <FILE FILE...>
基于输入文本文件创建模型。写入 stdout 或指定由 -o
或 --output
指定的文件。
致谢
实现了William B. Cavnar和John M. Trenkle在1994年描述的算法,“基于N-gram的文本分类”。
依赖项
~1MB
~16K SLoC