Анализ настроений с помощью лямбда-выражений в Python - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь использовать TextBlob для анализа настроений в Power BI. Я хотел бы использовать выражение lamdba, потому что оно кажется значительно быстрее, чем запуск итеративного l oop в Power BI.

Например, с помощью Text Blob:

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

создается столбец данных 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)

Не работают и указывают на способ, которым я прохожу классификатор. Как бы я передал параметр классификатора в лямбда-выражении?

1 Ответ

1 голос
/ 18 февраля 2020

Просто

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

Или, если вы хотите реорганизовать возможно запутанное лямбда-выражение,

cl = NaiveBayesClassifier(train)

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

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

эквивалентно.

...