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

问题描述 投票:0回答:1

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

例如,使用文本斑点:

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表达式中传递分类器参数?

python sentiment-analysis generic-lambda
1个回答
1
投票

简单

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)

等效。

© www.soinside.com 2019 - 2024. All rights reserved.