我目前正在处理客户对丝芙兰产品的评论数据。我的任务是将它们分类为情绪:消极、中性、积极。 文本预处理的常见技术是将所有单词小写,但在这种情况下,像“AMAZING”这样的大写单词可能会隐藏其背后的重要情感,而将所有单词转为小写可能会导致信息丢失。我会很高兴听到您在该主题中的意见,我是否应该将所有单词都小写?我个人认为创建更多的类别和区分情绪是好的,非常好,而不是仅仅积极地包含这个大写单词的重要性。
这是我当前的代码:
from itertools import chain
def is_upper_case(text):
return [word for word in text.split() if word.isupper() and word != 'I']
unique_upper_words = set(chain.from_iterable(all_reviews['review_text'].apply(is_upper_case)))
print(unique_upper_words)
如果您使用基于 BERT 的模型(或任何其他 LLM)进行实际分类,我建议根本不使用任何预处理(至少在大写方面),因为这些模型是在非-预处理数据。
如果您想对生成的标记句子进行任何类型的分析,您可以将所有内容小写以对 n 元组进行分组并简化分析。
如果您正在考虑使用多个类别来更好地区分预测,我认为如果您切换到情感回归而不是分类(在连续范围内预测值),那将是最有意义的。这对于语言模型的微调来说有点自然,因为在正常的分类中,您将从模型中获取连续输出,并使用诸如 softmax 之类的工具将其映射到分类类,因此根据您的需要,您可以跳过最后一步并直接使用模型输出。查看 此存储库 作为示例。