1

我想对一堆推文进行分类,因此我正在使用 BERT 的拥抱脸实现。但是我注意到默认的 BertTokenizer 不使用特殊的 url 标记。

>>> from transformers import BertTokenizer
>>> tokenizer = BertTokenizer.from_pretrained("bert-base-cased")
>>> tokenizer.tokenize("https://stackoverflow.com/questions/ask")
['https', ':', '/', '/', 'stack', '##over', '##flow', '.', 'com', '/', 'questions', '/', 'ask']

这对我来说似乎效率很低。对 URL 进行编码的最佳方法是什么?

4

1 回答 1

3

这得看情况。如果 URL 包含与分类相关的信息,那么您能做的最好的事情就是保持原样。预训练数据中肯定有一些 URL,BERT 学会了如何正确处理它们。

如果您确定 URL 与分类无关,您可以用特殊标记替换它们,这在 NLP 中通常是很常见的事情。但在这种情况下,你需要微调 BERT,让它知道特殊令牌的含义。如果您不微调 BERT 并且仅在其之上训练分类器,那么您能做的最好的事情就是保持 URL 不变。

于 2020-10-28T08:51:46.257 回答