NLP | 文本分词的工具包

发布时间 2023-07-09 12:29:19作者: 张Zong在修行

文本分词(Tokenization)是将一个文本序列分割成一个个单独的“词”或“标记”的过程。在自然语言处理(NLP)中,文本分词是一个必要的预处理步骤,几乎所有的自然语言处理任务都需要对文本进行分词。

文本分词的目的是根据某种规则或算法,将文本序列分割成较小的单元,例如单词、词组、标点符号等。分词的结果通常被用作文本表示的基本单位,例如在机器翻译、情感分析、文本分类、信息检索等任务中,输入和输出都是以分词后的文本序列为单位进行的。

不同语言的文本分词规则和算法各不相同。例如,英语文本通常是以空格和标点符号作为分隔符进行分词,而中文文本则需要考虑语言的特殊性,例如词语之间没有明显的分隔符,需要使用基于词典和统计的算法进行分词。

常见的文本分词算法包括基于规则的分词、基于词典的分词、基于统计的分词、基于深度学习的分词等。在实际应用中,通常会根据具体任务和任务数据选择最适合的分词算法。

THULAC:一个高效的中文词法分析工具包

网址https://github.com/thunlp/THULAC/tree/master

SentencePiece

网址https://github.com/google/sentencepiece

jieba

网址https://github.com/fxsjy/jieba

jieba分词原理:HMM(隐马尔可夫模型)。更多HMM内容可参考:

https://zhuanlan.zhihu.com/p/111899116

HanLP: Han Language Processing

网址https://github.com/hankcs/HanLP

fastNLP

网址https://github.com/fastnlp/fastNLP/tree/master

FASTNLP 中文文档http://www.fastnlp.top/docs/fastNLP/master/index.html

FudanNLP (FNLP)

网址https://github.com/FudanNLP/fnlp

SnowNLP: Simplified Chinese Text Processing

网址https://github.com/isnowfy/snownlp

NLPIR

网址https://github.com/NLPIR-team/NLPIR

subword-nmt

网址https://github.com/rsennrich/subword-nmt

论文https://arxiv.org/abs/1508.07909

fastBPE

网址https://github.com/glample/fastBPE

Sacremoses

网址https://github.com/alvations/sacremoses

FoolNLTK

网址https://github.com/rockyzhengwu/FoolNLTK

FoolNLTK分词原理如下:

BiLSTM-CRF模型架构

LTP

网址https://github.com/HIT-SCIR/ltp

HuggingFace

fairseq

网址https://github.com/facebookresearch/fairseq/tree/main/examples/translation

教程https://fairseq.readthedocs.io/en/latest/getting_started.html

pytorch

网址https://pytorch.org/hub/pytorch_fairseq_translation/