如何将训练好的NLTK情感分类模型应用于Pandas DataFrame文本列做正负情感标注
错误原因
你调用classify时传入的是原始字符串,而你训练的NaiveBayesClassifier要求输入的是经bag_of_words方法处理后的特征字典,缺少了分词、特征转换的步骤,因此触发属性报错。
修正方案
直接修改你定义的分类函数,补充特征转换逻辑即可:
def my_classification(x): # 对输入文本分词 text_tokens = word_tokenize(x) # 转换为分类器可识别的词袋特征格式 review_feature = bag_of_words(text_tokens) # 返回分类结果 return classifier.classify(review_feature) # 建议先过滤空文本,避免无意义报错 df = df.dropna(subset=['text']) df["sentiment"] = df["text"].apply(my_classification)
运行后df的sentiment列就会存储每条评论对应的pos/neg情感标签。
内容的提问来源于stack exchange,提问作者YanRemes
相关产品推荐
相关产品推荐

