如何在数据集上遍历TextBlob NaiveBayes分类器进行情感分析?
如何在数据集上遍历TextBlob NaiveBayes分类器进行情感分析?
嗨,我之前也踩过这个坑!TextBlob的TextBlob类实例确实只能接收单个字符串当参数,你直接把整个列表传进去肯定会报错的。其实解决方法很简单——咱们直接遍历你的数据集,对每一条文本单独处理就行,不用硬把整个列表塞给TextBlob。
给你两种实用的处理方式,看你的数据集结构来选:
情况1:你的blobs是(文本, 标签)的元组列表
如果你的数据集是像[(评论文本1, 真实标签1), (评论文本2, 真实标签2), ...]这样的元组列表,那就逐个提取文本部分,然后用分类器处理:
# 假设你已经训练好的分类器是cl classified_results = [] for text, _ in blobs: # 方法一:用TextBlob实例来分类 single_blob = TextBlob(text, classifier=cl) sentiment = single_blob.classify() # 方法二:直接调用分类器的classify方法(更高效) # sentiment = cl.classify(text) classified_results.append((text, sentiment))
方法二更推荐,因为跳过了创建TextBlob实例的额外步骤,数据集大的时候能快不少。
情况2:你的数据集是纯文本列表
如果blobs就是单纯的文本列表(比如["这个电影超好看", "服务态度太差了"]),用列表推导式一行就能搞定:
classified_results = [cl.classify(text) for text in blobs]
另外提醒你一下,要是你之后想做更复杂的批量处理或者性能优化,也可以考虑用生成器来迭代,避免一次性把所有结果都存在内存里,不过一般小数据集用上面的方法完全够用啦。
内容来源于stack exchange
相关产品推荐
相关产品推荐

