當前位置:成語大全網 - 新華字典 - Bert如何使用預留的[unused*]

Bert如何使用預留的[unused*]

經過觀察我們發現, vocab.txt 的前面幾行是 [unusedx] 。顧名思義,這種字符是沒有用的,只是用來占位置的,他們在Bert Embedding層的權重是隨機初始化的。那麽,我們將 [unused] 替換為詞典中沒有的特殊字符,就可以讓分詞器識別出自定義的特殊字符了,這些特殊字符的初始權重也沿用了對應位置 [unused] 符號的權重,即也是隨機初始化的。

根據這篇博客的內容 Bert預留[unused*] ,直接將我們需要增加的token替換vocab.txt中原來的[unused]的對應行即可。如圖所示,我們將 [unused] 替換為原本詞典中不存在的幾個表情符和特殊漢字。

在某論壇上出現這樣壹個提問, Special tokens not tokenized properly #12168 , How to use my own additional vocabulary dictionary? #396 和我們的訴求比較壹致,下面給了壹些討論,大家有興趣可以看看。總之結論跟 huggingface官方論壇給出的關於add_token的方法 比較類似,即用special token的方法,下面直接貼出:

感興趣的可以運行壹下, 這裏直接說結論

最好的方法當然是兩者的結合

這樣就可以實現如下訴求: