You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NLP从评论中提取颜色,解决tuple无lower属性报错问题

问题原因
  • pandas Series.iteritems() 遍历返回的每个元素是(行索引, 列值)的二元元组,你直接将整个元组作为string参数传入get方法,调用string.lower()时就会触发「tuple没有lower属性」的报错。
  • 额外隐性风险:评论列可能存在空值、数字等非字符串类型内容,就算解决了元组问题,这类值调用lower()也会报错。
修复方案
  1. 首先修改遍历逻辑,拆分元组得到评论内容,同时提前实例化提取工具避免重复加载spacy模型浪费性能:
colours = ['blue', 'pink', 'lavender', 'heather']
# 全局实例化一次即可
extractor = ColourExtractorStrict(colours=colours)

for idx, review_text in fashion_data['review_text'].iteritems():
    # 仅处理字符串类型的评论内容
    if isinstance(review_text, str):
        extract_result = extractor.get(string=review_text)
        # 后续可添加结果存储逻辑,比如写入新列
        if extract_result:
            print(f"行{idx}提取结果:{extract_result}")
  1. 可选增强:在get方法开头加参数类型校验,避免后续传错参数引发同类报错:
def get(self, string):
    # 新增类型校验
    if not isinstance(string, str):
        return False
    extracted = set()
    doc = self.tagger(string.lower())
    # 原有逻辑保持不变

内容的提问来源于stack exchange,提问作者user15212303

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 03:18:03