我想对一堆推文进行分类,因此我正在使用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的最佳方法是什么?
答案 0 :(得分:2)
嗯,这取决于。如果URL包含与分类有关的信息,那么最好的办法就是保持原样。预训练数据中肯定有一些URL,并且BERT学习了如何正确处理它们。
如果您确定URL与分类无关,则可以用特殊标记替换它们,这在NLP中通常是很常见的事情。但是在这种情况下,您需要微调BERT,以便它知道特殊令牌的含义。如果您不对BERT进行微调,而仅在其上训练分类器,那么最好的办法是保持URL不变。