7 个稳定版本
1.3.2 | 2021年11月12日 |
---|---|
1.3.1 | 2021年11月8日 |
1.2.0 | 2021年8月2日 |
1.1.2 | 2021年7月20日 |
#664 in 文本处理
每月49次下载
用于 nlpo3-cli
65KB
1.5K SLoC
nlpO3
Rust 编写的泰国自然语言处理库,具有 Python 和 Node 绑定。之前称为 oxidized-thainlp。
特性
- 泰国词分词器
- 使用基于最大匹配字典的分词算法,并尊重泰文字符簇边界
- 从纯文本文件(每行一个单词)或从
Vec<String>
加载字典
字典文件
- 出于库大小的考虑,nlpO3 不假设开发者想使用哪个字典。它不附带字典。基于字典的词分词器需要字典。
- 对于分词字典,请尝试
- words_th.txt 来自 PyThaiNLP - 约 62,000 个单词 (CC0)
- 单词分割字典 来自 libthai - 由不同类别的字典组成,带有制作脚本 (LGPL-2.1)
用法
命令行界面
echo "ฉันกินข้าว" | nlpo3 segment
绑定
from nlpo3 import load_dict, segment
load_dict("path/to/dict.file", "dict_name")
segment("สวัสดีครับ", "dict_name")
作为 Rust 库
In Cargo.toml
[dependencies]
# ...
nlpo3 = "1.3.2"
使用来自文件的字典创建一个分词器,然后使用它对字符串进行分词(安全模式 = true,并行模式 = false)
use nlpo3::tokenizer::newmm::NewmmTokenizer;
use nlpo3::tokenizer::tokenizer_trait::Tokenizer;
let tokenizer = NewmmTokenizer::new("path/to/dict.file");
let tokens = tokenizer.segment("ห้องสมุดประชาชน", true, false).unwrap();
使用来自字符串向量的字典创建一个分词器
let words = vec!["ปาลิเมนต์".to_string(), "คอนสติติวชั่น".to_string()];
let tokenizer = NewmmTokenizer::from_word_list(words);
向现有的分词器添加词语
tokenizer.add_word(&["มิวเซียม"]);
从现有的分词器中移除词语
tokenizer.remove_word(&["กระเพรา", "ชานชลา"]);
构建
需求
步骤
通用测试
cargo test
构建API文档并打开以检查
cargo doc --open
构建(移除--release
以保留调试信息)
cargo build --release
检查target/
以查找构建工件。
开发文档
问题
依赖项
~5MB
~84K SLoC