繁体   English   中英

对textframe的每一行应用textblob

[英]Apply textblob in for each row of a dataframe

我有一个带有文本的col的数据框。 我想应用textblob并计算每行的情绪值。

text                sentiment

这很棒
伟大的电影精彩故事

当我执行以下代码时:

df['sentiment'] = list(map(lambda tweet: TextBlob(tweet), df['text']))

我收到错误:

TypeError: The `text` argument passed to `__init__(text)` must be a string, not <class 'float'>

如何将textBLob应用于数据框中col的每一行以获取情绪值?

你可以使用.apply

df['sentiment'] = df['text'].apply(lambda tweet: TextBlob(tweet).sentiment)

Sentiment返回一个形式为Sentiment(极性,主观性)的命名元组。

但是你确定df['text']每一行都是字符串格式吗? 如果没有,如果TextBlob无法处理文本,您可以尝试下面的返回None

def sentiment_calc(text):
    try:
        return TextBlob(text).sentiment
    except:
        return None

df['sentiment'] = df['text'].apply(sentiment_calc)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM