在 Python 中使用 Lambda 表达式进行情感分析

Sentiment analysis with Lambda Expressions in Python

我正在尝试使用 TextBlob 在 Power BI 中执行情绪分析。我想使用 lamdba 表达式,因为它似乎比 运行 Power BI 中的迭代循环快得多。

例如,使用 Text Blob:

dataset['Polarity Score'] =dataset['Comment'].apply(lambda x: TextBlob(str(x).lower()).sentiment.polarity) 

创建一个名为 "Polarity Score" 的 Power BI 数据列,其中包含来自 TextBlob 的数值。

我想用 TextBlob.classify() 函数做类似的事情。但是,我不知道如何将它传递给分类器的第二个参数。

创建和使用分类器的教程:

from textblob.classifiers import NaiveBayesClassifier
from textblob import TextBlob

cl = NaiveBayesClassifier(train)
blob = TextBlob("The beer is good. But the hangover is horrible.", classifier=cl)
blob.classify()

我试过了

dataset['Polarity Class'] =dataset['Comment'].apply(lambda x: TextBlob(str(x).lower()).classify(), classifier=cl)

dataset['Polarity Class'] =dataset['Comment'].apply(lambda x,y: TextBlob(str(x).lower()).classify(), y=cl)

既没有工作也没有指出我通过分类器的方式。我如何在 lambda 表达式中传递分类器参数?

简单

cl = NaiveBayesClassifier(train)
dataset['Polarity Class'] = dataset['Comment'].apply(
    lambda x: TextBlob(str(x).lower(), classifier=cl).classify()
)

或者,如果您想重构可能令人困惑的 lambda 表达式,

cl = NaiveBayesClassifier(train)

def classify(x):
    return TextBlob(str(x).lower(), classifier=cl).classify()

dataset['Polarity Class'] = dataset['Comment'].apply(classify)

等价。