nlp - 使用经过训练的 BERT 模型和数据预处理

标签 nlp pytorch bert-language-model

当使用来自 pytorch 的预训练 BERT 嵌入(然后进行微调)时,是否应该像在任何标准 NLP 任务中一样对输入模型的文本数据进行预处理?
例如,是否应该进行词干提取、去除低频词、去首字母化处理,还是应该将原始文本简单地传递给“transformers.BertTokenizer”?

最佳答案

我认为预处理不会改变你的输出预测。我将尝试为您提到的每个案例进行解释-

  • 词干提取或词形还原 :
    Bert 使用 BPE( 字节对编码 来缩小其词汇大小),所以像 run 和 running 这样的词最终会被解码为 运行 + ##ing。
    因此最好不要将运行转换为运行,因为在某些 NLP 问题中,您需要该信息。
  • 去资本化 - Bert 提供两种模型(小写和大写)。一个将您的句子转换为小写,其他则不会随着您句子的大小写而改变。因此,您无需在此处进行任何更改,只需为您的用例选择模型即可。
  • 去除高频词 ——
    Bert 使用 Transformer 模型,该模型适用于注意力原则。
    因此,当您针对任何问题对其进行微调时,它只会查看那些会影响输出的单词,而不查看所有数据中常见的单词。
  • 关于nlp - 使用经过训练的 BERT 模型和数据预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63979544/

    相关文章:

    python - 关于Keras中基于官方文档的Embeddings的输入维度的问题

    nlp - 使用 spacy 的表格数据

    python - 如何访问 TF Hub 模块中的 BERT 中间层输出?

    python - BERT 微调后得到句子级别的嵌入

    python - 在 Bert Trainer 实例中提前停止

    python - 使用 sklearn count vectorizer 获取 n gram 后缀

    nlp - 无法设置属性 "trainable_weights",可能是因为它与现有的只读属性冲突

    python - PyTorch 中 RNN(nn.LSTM、nn.GRU 等)的输出 h_n 是如何构造的?

    python - 无法将 Pandas Dataframe 列转换为 float

    python - CNN 模型在达到 50% 的准确率后过度拟合数据