赞
踩
SentencePiece是谷歌推出的子词开源工具包,它是把一个句子看作一个整体,再拆成片段,而没有保留天然的词语的概念。一般地,它把空格也当作一种特殊字符来处理,再用BPE或者Unigram算法来构造词汇表。SentencePiece除了集成了BPE、ULM子词算法之外,还能支持字符和词级别的分词。
他是一种无监督的文本 tokenizer 和 detokenizer,主要用于基于神经网络的文本生成系统,其中,词汇量在神经网络模型训练之前就已经预先确定了。 SentencePiece 实现了subword单元(例如,字节对编码 (BPE))和 unigram 语言模型),并可以直接从原始句子训练子词模型(subword model)。 这使得我们可以制作一个不依赖于特定语言的预处理和后处理的纯粹的端到端系统。
SentencePiece开源代码地址:https://github.com/google/sentencepiece
- import sentencepiece as sp
-
- # 训练 Sentencepiece 模型
- sp.SentencePieceTrainer.Train(input='data.txt', model_prefix='sp', vocab_size=5000)
-
- # 载入模型
- spp = sp.SentencePieceProcessor()
- spp.Load('sp.model')
-
- # 进行分词
- text = '我喜欢北京烤鸭'
- tokens = spp.EncodeAsPieces(text)
- print(tokens) # 输出结果为 ['▁我', '喜欢', '北京', '烤鸭']
常见使用SentencePiece的LM:T5
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。