如何解决使用训练有素的BERT模型和数据预处理
当使用来自pytorch的预训练BERT嵌入(然后对其进行微调)时,是否应该像在任何标准NLP任务中一样对输入到模型中的文本数据进行预处理?
例如,应该执行词干删除,去除低频词,去capcapisation,还是应该将原始文本简单地传递给“ transformers.BertTokenizer”?
解决方法
我认为预处理不会改变您的输出预测。对于您提到的每种情况,我都会尽力解释-
- 去茎或去茎: Bert使用BPE(字节对编码来缩小其字型大小),因此run和running之类的词最终将被解码为 run + ## ing。 因此最好不要将 running 转换为 run ,因为在某些NLP问题中,您需要该信息。
- 去大写字母-Bert提供了两种模型(小写和大写)。一个将您的句子转换为小写,其他的则不会因您的句子大写而改变。因此,您无需在此处进行任何更改,只需为您的用例选择模型。
- 删除高频单词- Bert使用Transformer模型,该模型适用于注意力主体。 因此,当您对任何问题进行微调时,它只会查看会影响输出的单词,而不会查看所有数据中通用的单词。
在大多数情况下,提供原始文本效果很好。如果您想要更具体的答案,请共享您的用例样本数据。
,对于外壳部分,请检查pretrained models
根据他们的训练方式,输出中包含有大小写的BERT和无大小写的BERT。
使用BERT的WordPeace分词器,通常在原始文本上训练BERT。
因此,没有词干或词根化或类似的NLP任务。
词法化假设词法是词法分析,以返回词的基本形式,而词干化通常是粗加工除去词尾或词缀。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。