8个版本
0.3.0 | 2019年7月20日 |
---|---|
0.2.4 | 2018年5月26日 |
0.2.3 | 2017年6月25日 |
0.2.2 | 2017年5月3日 |
0.1.1 | 2016年11月22日 |
#1179 in 文本处理
每月 21 次下载
245KB
2K SLoC
igo-rs
纯Rust移植的Igo,用于日语的POS(词性标注)标记器。
原始版本是用Java编写的。
从版本0.3开始支持WebAssembly(在线演示)。
日语遵循英语
要求
- 使用原始版本构建的二进制字典文件(您可以从这里下载预构建的字典)
演示(作为命令行工具)
% cp -r somewhere/original_java_igo/dic/ipadic data
% cargo build --release
% ./target/release/igo -t "すもももももも🍑もものうち" data/ipadic
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
🍑 記号,一般,*,*,*,*,*
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
使用(作为库)
extern crate igo;
use std::path::PathBuf;
use igo::Tagger;
fn main() {
let dic_dir = PathBuf::from("data/ipadic");
let tagger = Tagger::new(&dic_dir).unwrap();
let text = "すもももももももものうち";
let results = tagger.parse(text);
for ref m in results {
println!("{}\t{}", m.surface, m.feature);
}
println!("EOS");
}
构建二进制字典
% cargo build --release
% ./target/release/igo_build_dic data/ipadic data/mecab-ipadic-2.7.0-20070801-utf8 UTF-8
### Build word trie
### Build word dictionary
### Build matrix
### Build char-category dictionary
DONE
许可证
MIT许可证。
概要
这是由Takeru Ohta氏用Java编写的日本语形态素解析库Igo的Rust移植版本。
特点
- 纯Rust,因此易于在Windows等系统上设置运行环境。
- 不使用unsafe处理。
- 可以编译为WebAssembly(在线演示)。
所需条件
- Java版Igo构建的二进制字典(目录)。 (这里 可以下载构建好的IPA字典)
- 这个Rust版的Igo也支持构建二进制字典。请参阅上面的“构建二进制字典”。
用法
作为Rust库或命令行程序使用。请参阅上面的“演示”和“使用”。
注意事项
- 为了加速,处理结果
igo::Morpheme
保留了处理目标文本和igo::Tagger
的引用。surface
是处理目标文本的切片,feature
是字典内文本的切片。根据需要,请执行如Morpheme#to_owned()
等处理。 - 构建二进制字典时,建议使用UTF-8编码。
内存使用量
examples/parse.rs
在64位Linux环境中使用 valgrind --tool=massif
进行测试,最大为102.6MB。
ruby绑定
igo-rs-ruby -- 作为ruby扩展库调用的测试
依赖关系
~6MB
~163K SLoC