我的代码从文本中删除了所有标点符号,但我们需要很少的标点符号来进行情感分析吗?

My code removed all punctuation from text but do we need few of them for sentimental analysis?

def remove_punctuation(review):
    lst = []
    for text in review:
        if text not in string.punctuation:
            lst.append(text)
    return "".join(lst)
df.Review = df.Review.apply(lambda x: remove_punctuation(x))

我正在从事亚马逊产品评论的情感分析。我正在预处理评论的文本并使用上述功能删除标点符号。它已经删除了所有这些,但我的问题是我们是否考虑将其中一些用于情感分析。像 !。这样的做法对吗

感谢您的帮助和时间。

对此没有明确的答案。大多数 nlp 任务都需要某种形式的文本预处理,以便模型更好地推断文本。但是,在情感分析的情况下,! 等标点符号可能很有价值,因为它表示对文本的强调:

I lost my purse!! 可能比 Well, I lost my purse.

具有更负面的含义

你有两种方法来解决这个问题:

  1. 您只能排除 ,.; 等功能性标点符号,而保留 !? 类标点符号。然后看看你的情绪分析模型的表现。
  2. 在清除所有标点符号之前和之后评估您的模型。您可以编写某种网格搜索功能来控制删除哪些标点符号,哪些不删除并比较性能。

总而言之,在大多数机器学习问题中(我假设您使用经过训练的模型进行情感分析),它归结为特定的数据集和模型,插入点是否会干扰模型的性能。但是,如果您使用某种形式的第三方 API 进行分析,您可以安全地保留标点符号,因为第三方 API 很可能会自行处理清理工作。

希望这给了一些直觉!