8个版本
使用旧的Rust 2015
0.1.6 | 2023年9月3日 |
---|---|
0.1.5 | 2022年6月1日 |
0.1.4 | 2019年11月7日 |
0.1.3 | 2015年11月7日 |
0.0.1 | 2015年4月19日 |
#172 in 文本处理
125 每月下载量
在 2 crate 中使用
29KB
674 行
mecab-rs
为mecab 提供的日语词性标注和词形分析库的安全Rust封装。
使用方法
该封装与meccab的C++接口几乎相同,增加了各种迭代器以便于舒适的数据访问。它是使用最新版本的meccab v0.996构建的。
Windows
Windows Rust版本(MSVC ABI和gcc工具链)都可以使用预构建的32位库。不推荐在Windows命令行中使用meccab-rs,如果未使用正确的代码页和支持日语字符的字体,可能会导致未定义的行为。
CMake & 64位库
感谢 @DoumanAsh 提供这些文件
示例
将此包含在Cargo.toml中,将meccab添加到您的项目中
[dependencies]
mecab = "*"
单线程环境
extern crate mecab;
use mecab::Tagger;
fn main() {
let input = "太郎は次郎が持っている本を花子に渡した。";
println!("INPUT: {}", input);
let mut tagger = Tagger::new("");
// gets tagged result as String
let mut result = tagger.parse_str(input);
println!("RESULT: {}", result);
// gets N best results as String
result = tagger.parse_nbest(3, input);
println!("NBEST:\n{}", result);
// gets N best in sequence
tagger.parse_nbest_init(input);
for i in 0..3 {
if let Some(res) = tagger.next() {
println!("{}:\n{}", i, res);
}
}
// gets Node object
for node in tagger.parse_to_node(input).iter_next() {
match node.stat as i32 {
mecab::MECAB_BOS_NODE => {
print!("{} BOS ", node.id);
},
mecab::MECAB_EOS_NODE => {
print!("{} EOS ", node.id);
},
_ => {
print!("{} {} ", node.id, &(node.surface)[..(node.length as usize)]);
}
}
println!("{} {} {} {} {} {} {} {} {} {} {} {} {}",
node.feature,
input.len() as isize - node.surface.len() as isize,
input.len() as isize - node.surface.len() as isize + node.length as isize,
node.rcattr,
node.lcattr,
node.posid,
node.char_type,
node.stat,
node.isbest,
node.alpha,
node.beta,
node.prob,
node.cost);
}
// dictionary info
for dict in tagger.dictionary_info().iter() {
println!("\nfilename: {}", dict.filename);
println!("charset: {}", dict.charset);
println!("size: {}", dict.size);
println!("type: {}", dict.dict_type);
println!("lsize: {}", dict.lsize);
println!("rsize: {}", dict.rsize);
println!("version: {}", dict.version);
}
}
多线程环境
请参阅多线程示例
许可证
MIT许可证(MIT)
版权所有(c)2015-2016 Cristian Kubis
特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的个人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件的个人按以下条件进行操作:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是因为合同行为、侵权或其他行为,也不论是由于软件本身、使用软件或其他与软件相关的行为而产生的。