#text #classification #language

bin+lib langid

基于N-gram的语言识别

1 个不稳定版本

使用旧的Rust 2015

0.0.1 2016年3月23日

#38#classification

MIT/Apache

24KB
356 代码行

langid-rs

Build Status

用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