我正在与伯特一起开发一个情感分析解决方案,用德语分析推特。我的训练数据集是一个1000条推特的类,它们被手动注释为中性、正面和负面的类。
包含10.000条tweet的数据集分布非常不均匀:
大约3000正数2000负5000中性
这些推文包含@name、https链接、数字、标点符号、笑脸(如:3 :D :)等。
有趣的是,如果我在数据清理期间用下面的代码删除它们,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)此外,诸如停止字句删除或柠檬化等步骤会导致更多的恶化。这是因为我做错了什么,还是BERT模型真的能处理这些值?
第二个问题是:
我发现其他记录也是手工标注的,但这些都不是tweet,句子的结构和语言的使用是不同的。你还会建议把这些记录加到我的原件里吗?
德国有大约3000张唱片。
我最后一个问题是:
我是否应该将班级规模缩小到最小单元的大小,从而达到平衡?
发布于 2020-06-27 11:08:17
发布于 2021-11-03 14:42:31
基于这论文(由Adam,和),伯特模型在更好地推广到标点符号方面优于BiLSTM。看看论文中的实验结果,我认为保留标点符号。
对于笑脸,我找不到任何坚实的东西;然而,在对HuggingFace API做了一些实验之后,我没有注意到有/没有笑脸的区别。
https://stackoverflow.com/questions/62578609
复制相似问题