文本预处理跑得慢?抱抱脸团队又放福利,1GB文本语料分词只需20s!
一只小狐貍帶你解鎖NLP/DL/ML秘籍
正文素材來源:量子位
緣起BERT
BERT帶來的并不是只有一大波paper和嗷嗷上線,還帶火了一個NLP團隊——Huggingface(中文譯作抱抱臉)。抱抱臉團隊是一個創業團隊。他們的Transformers是github上最火的NLP項目,已經獲得了20K星。
不過本文當然不是來講這個transformers項目的。跑過BERT等英文預訓練模型的小伙伴都深深體會過英文語料的分詞套路已經被帶入新一波高潮,從BERT使用的wordpiece tokenizer到XLNet用的sentencepiece tokenizer到RoBERTa/GPT用的BPE tokenizer,似乎英文分詞的套路再也回不去一行str.split()就搞定的舊時代了。
燃鵝這些分詞器與預訓練的transformer搭配起來雖然非常好用,但是卻會帶來明顯的分詞開銷。并且這些天花亂墜的新型英文分詞方法并沒有集成到NLTK等這種傳統的NLP庫里。
顯然抱抱臉團隊發現了NLPer們的這個需求,又為我們帶來了實實在在的福利!這一次就是NLP所有預處理都需要的,英文切詞項目Tokenizers。
不要996,不要669,只要20秒就能編碼1GB文本,適用Rust、Python和Node.js。截至今天(2020/1/15),tokenizers已經在GitHub上獲?1300+。
速度快,功能多樣
在NLP模型訓練中,詞語標記和切分往往是一個瓶頸。Tokenizer能夠訓練新的詞匯,并且進行標記。
功能多樣:適用于BPE/byte-level-BPE/WordPiece/SentencePiece各種NLP處理模型
可以完成所有的預處理:截斷(Truncate)、填補(Pad)、添加模型需要的特殊標記。
速度超級快:只需要20秒就可以在CPU上標記1GB的文本。
目前適用三種編程語言:Rust/ Python/ Node.js
打開方式
github的資源頁面上提供了在Python上使用Tokenizers的示例,進行簡單的設置就可以使用:
也可以用Tokenizers進行新詞訓練:
雖然目前只可用于三種語言Python、JS、Rust,抱抱臉團隊表示,將來會繼續升級以適用更多~
快快用起來吧~
# 星標小夕 第一時間看更新哦?#
參考資料
https://github.com/huggingface/tokenizers
https://techcrunch.com/2019/12/17/hugging-face-raises-15-million-to-build-the-definitive-natural-language-processing-library/
https://www.alleywatch.com/2019/12/hugging-face-natural-language-processing-open-source-clement-delangue/
總結
以上是生活随笔為你收集整理的文本预处理跑得慢?抱抱脸团队又放福利,1GB文本语料分词只需20s!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 珍爱生命,远离大厂政治斗争
- 下一篇: SIGIR2020 | 淘宝提出结合知识