JiebaTokenizer
所属分类:特征抽取
开发工具:C++
文件大小:17491KB
下载次数:0
上传日期:2023-02-15 10:09:05
上 传 者:
sh-1993
说明: 多语言的简单标记器
(simple tokenizer for multi-langugue)
文件列表:
CMakeLists.txt (310, 2023-02-15)
build.sh (89, 2023-02-15)
data (0, 2023-02-15)
data\default (0, 2023-02-15)
data\default\emoji.unicode.txt (93374, 2023-02-15)
data\default\emoji.utf8.txt (58017, 2023-02-15)
data\default\mn.unicode.txt (10523, 2023-02-15)
data\default\puncs.unicode.txt (4476, 2023-02-15)
data\default\puncs.utf8.txt (3299, 2023-02-15)
data\dict (0, 2023-02-15)
data\dict\cn.dict.utf8 (9337902, 2023-02-15)
data\dict\hant.dict.utf8 (5166064, 2023-02-15)
data\dict\id.dict.utf8 (2693570, 2023-02-15)
data\dict\my.dict.utf8 (2816705, 2023-02-15)
data\dict\ph.dict.utf8 (2741147, 2023-02-15)
data\dict\portuguese.dict.utf8 (4953600, 2023-02-15)
data\dict\sg.dict.utf8 (8313348, 2023-02-15)
data\dict\thai.dict.utf8 (2098789, 2023-02-15)
data\dict\tw.dict.utf8 (5979361, 2023-02-15)
data\dict\vn.dict.utf8 (1439003, 2023-02-15)
data\symbols.unicode.txt (99150, 2023-02-15)
demo.cpp (1783, 2023-02-15)
src (0, 2023-02-15)
src\CMakeLists.txt (151, 2023-02-15)
src\dict_trie.cpp (4528, 2023-02-15)
src\dict_trie.h (3448, 2023-02-15)
src\make_unique.h (1357, 2023-02-15)
src\mm_segment.cpp (8393, 2023-02-15)
src\mm_segment.h (2603, 2023-02-15)
src\mp_segment.cpp (6551, 2023-02-15)
src\mp_segment.h (2150, 2023-02-15)
src\nlp_stringutil.cpp (5479, 2023-02-15)
src\nlp_stringutil.h (2476, 2023-02-15)
src\normalizer.cpp (5457, 2023-02-15)
src\normalizer.h (1741, 2023-02-15)
src\segment_base.h (1378, 2023-02-15)
src\separator_iterator.h (1950, 2023-02-15)
src\text_analyzer.cpp (2376, 2023-02-15)
... ...
# JiebaTokenizer
基于jieba 分词增加了一些多语言支持, 归一化操作.
jieba分词见: https://github.com/fxsjy/jieba
jieba分词cpp代码见: https://github.com/yanyiwu/cppjieba
### (1) 基本信息
(1) 分词工具, 支持多语言分词
(2) 目前支持 MP\MM 两种分词模式
(3) 支持基本的normalize;
- 去除控制字符
- 去除emoji (共4702种)
- 去除Mn (存在风险, accent 对于很多语言是必须的, 需要根据具体的语言谨慎选择)
- 根据标点分割
- 数字单独分割
- 多语言按国家地区分别加载词典
(4) 暂不支持:
- 数字、单位的标准化处理
- 相同意义字符的转化: 如 10->10
- 多语言混杂的情况 (目前会按unicode输出, 或者分块输出)
- 动态更新词典
### (2) 接口说明
```c++
// 初始化词典, 按地区添加
// param1: dict_path 某地区词频统计词典
// example: text_analyzer->addDict("id", "id.dict.utf8")
void TextAnalyzer::addDict(const std::string& country, const std::string& dict_path);
// 返回归一化后的结果 (见(1) 中描述)
bool TextAnalyzer::normalize(const std::string& sentence, std::vector& res) const;
std::string TextAnalyzer::normalize(const std::string& sentence) const;
// 动态规划分词
void TextAnalyzer::cutMP(const std::string& sentence, const std::string& country, std::vector& res) const;
```
### (3) 词典获取
- 可以自己统计词频构建词典
- https://wortschatz.uni-leipzig.de/en/download 有部分网络抓取的语料
近期下载者:
相关文件:
收藏者: