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


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 很可能会自行处理清理。

希望这能给一些直觉!

最新更新