#nlp #thai #tokenizer #python-bindings #nodejs #word-segmentation

nlpo3

泰国自然语言处理库,具有 Python 和 Node 绑定

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

Apache-2.0

65KB
1.5K SLoC

nlpO3

Rust 编写的泰国自然语言处理库,具有 Python 和 Node 绑定。之前称为 oxidized-thainlp。

特性

字典文件

  • 出于库大小的考虑,nlpO3 不假设开发者想使用哪个字典。它不附带字典。基于字典的词分词器需要字典。
  • 对于分词字典,请尝试

用法

命令行界面

echo "ฉันกินข้าว" | nlpo3 segment

绑定

from nlpo3 import load_dict, segment

load_dict("path/to/dict.file", "dict_name")
segment("สวัสดีครับ", "dict_name")

作为 Rust 库

crates.io

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/以查找构建工件。

开发文档

问题

请在此处报告问题:https://github.com/PyThaiNLP/nlpo3/issues

依赖项

~5MB
~84K SLoC