Deep learning BERT(基础德语)的数据预处理

Deep learning BERT(基础德语)的数据预处理,deep-learning,nlp,data-cleaning,bert-language-model,Deep Learning,Nlp,Data Cleaning,Bert Language Model,我正在与伯特一起研究情绪分析解决方案,用德语分析推特。我的训练数据集是一个包含1000条tweet的类,这些tweet被手动注释为中性、积极和消极的类 包含10000条推文的数据集分布非常不均匀: 大约。 3000正 2000负 5000空档 tweet包含@names、https链接、数字、标点符号、笑脸等格式 有趣的是,如果我在数据清理过程中使用以下代码删除它们,F1成绩会变得更糟。只有删除https链接(如果我单独这么做的话)才能带来一点小小的改进 # removing the punct

我正在与伯特一起研究情绪分析解决方案,用德语分析推特。我的训练数据集是一个包含1000条tweet的类,这些tweet被手动注释为中性、积极和消极的类

包含10000条推文的数据集分布非常不均匀:

大约。 3000正 2000负 5000空档

tweet包含@names、https链接、数字、标点符号、笑脸等格式

有趣的是,如果我在数据清理过程中使用以下代码删除它们,F1成绩会变得更糟。只有删除https链接(如果我单独这么做的话)才能带来一点小小的改进

# removing the punctuation and numbers
def remove_punct(text):
    text = re.sub(r'http\S+', '', text)                                         # removing links
    text = re.sub(r'@\S+', '', text)                                            # removing referencing on usernames with @
    text = re.sub(r':\S+', '', text)                                            # removing smileys with : (like :),:D,:( etc) 
    text  = "".join([char for char in text if char not in string.punctuation])
    text = re.sub('[0-9]+', '', text)
    return text

data['Tweet_clean'] = data['Tweet'].apply(lambda x: remove_punct(x))            # extending the dataset with the column tweet_clean
data.head(40)
此外,停止词删除或模仿等步骤也会导致更严重的退化。这是因为我做错了什么,还是模型能处理这样的值

第二个问题是:

我发现其他的记录也有人工注释,但这些不是推特,句子结构和语言使用也不同。您是否仍建议将这些记录添加到我的原始记录中

德语大约有3000条记录

最后一个问题:

我是否应该将班级规模缩小到最小单元的规模,从而达到平衡

  • 伯特能处理标点符号、笑脸等。当然,笑脸对情绪分析有很大贡献。所以,不要移除它们。接下来,用一些特殊的标记替换@提及和链接是公平的,因为模型将来可能再也看不到它们了
  • 如果您的模型是为tweet设计的,我建议您使用额外的语料库对BERT进行微调,然后使用Twitter语料库进行微调。或者同时做。训练样本越多越好
  • 不,最好使用类权重,而不是下采样