Python 我的代码删除了文本中的所有标点符号,但我们是否需要很少的标点符号来进行情感分析?
我正在从事亚马逊产品评论的情感分析。我正在对评论文本进行预处理,并使用上述函数删除标点符号。它已经删除了所有这些,但我的问题是,我们是否考虑其中的一些情感分析。喜欢这是正确的方法吗Python 我的代码删除了文本中的所有标点符号,但我们是否需要很少的标点符号来进行情感分析?,python,nlp,nltk,sentiment-analysis,Python,Nlp,Nltk,Sentiment Analysis,我正在从事亚马逊产品评论的情感分析。我正在对评论文本进行预处理,并使用上述函数删除标点符号。它已经删除了所有这些,但我的问题是,我们是否考虑其中的一些情感分析。喜欢这是正确的方法吗 感谢您的帮助和时间。对此没有明确的答案。大多数nlp任务需要对模型进行某种形式的文本预处理,以便更好地推断文本。然而,在情绪分析的情况下,标点符号如可能很有价值,因为它表示对文本的强调: 我的钱包丢了可能比有更负面的含义好吧,我的钱包丢了。 解决此问题有两种方法: 您只能排除功能性标点符号,如等,并留在中和?类型的标
感谢您的帮助和时间。对此没有明确的答案。大多数nlp任务需要对模型进行某种形式的文本预处理,以便更好地推断文本。然而,在情绪分析的情况下,标点符号如
代码>可能很有价值,因为它表示对文本的强调:
我的钱包丢了
可能比有更负面的含义好吧,我的钱包丢了。
解决此问题有两种方法:
您只能排除功能性标点符号,如代码>等,并留在中
和?
类型的标点符号。然后看看你的情绪分析模型的表现
在清除所有标点符号之前和之后评估模型。您可以编写某种网格搜索功能,控制删除哪些标点符号和不删除哪些标点符号,并比较性能
总之,正如大多数机器学习问题(我假设您使用经过训练的模型进行情绪分析)一样,它可以归结为一个特定的数据集和模型,即函数间是否会干扰模型的性能。但是,如果使用某种形式的第三方API进行分析,则可以安全地保留标点符号,因为第三方API很可能会自行处理清理
希望这给了一些直觉 好问题!我经常想知道这一点。
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))