使用训练有素的BERT模型和数据预处理

时间:2020-09-20 13:33:59

标签: nlp pytorch bert-language-model

当使用来自pytorch的预训练BERT嵌入(然后对其进行微调)时,是否应该像在任何标准NLP任务中一样对输入到模型中的文本数据进行预处理?

例如,应该执行词干删除,去除低频词,去capcapisation,还是应该将原始文本简单地传递给“ transformers.BertTokenizer”?

3 个答案:

答案 0 :(得分:1)

我认为预处理不会改变您的输出预测。对于您提到的每种情况,我都会尽力解释-

  1. 去茎或去茎: Bert使用BPE(字节对编码来缩小其字型大小),因此run和running之类的词最终将被解码为 run + ## ing。 因此最好不要将 running 转换为 run ,因为在某些NLP问题中,您需要该信息。
  2. 去大写字母-Bert提供了两种模型(小写和大写)。一个将您的句子转换为小写,其他的则不会因您的句子大写而改变。因此,您无需在此处进行任何更改,只需为您的用例选择模型。
  3. 删除高频单词- Bert使用Transformer模型,该模型适用于注意力主体。 因此,当您对任何问题进行微调时,它只会查看会影响输出的单词,而不会查看所有数据中通用的单词。

答案 1 :(得分:0)

在大多数情况下,提供原始文本效果很好。如果您想要更具体的答案,请共享您的用例样本数据。

答案 2 :(得分:0)

对于外壳部分,请检查pretrained models

enter image description here

根据他们的训练方式,输出中包含有大小写的BERT和无大小写的BERT。

使用BERT的WordPeace分词器,通常在原始文本上训练BERT。

因此,没有词干或词根化或类似的NLP任务。

词法化假设词法是词法分析,以返回词的基本形式,而词干化通常是粗加工除去词尾或词缀。