对DataFrame应用自定义文本转序列函数时报No Value Error如何解决?
问题原因
- 你的自定义函数没有声明入参,
pandas的apply方法会将每行text列的内容作为参数传入调用的函数,你的函数没有接收这个传入值,内部用到的text是全局变量,仅能固定处理某一个文本值,遍历全量数据集时自然会报错。 - 潜在问题:如果词典中没有对应的单词,
word_dict.get(t.text)会返回None,后续如果对序列有数值类型要求,也会触发类型错误,可以给get方法添加默认值作为未知词占位符。
修正后的代码
# 给函数添加入参text,接收apply传入的每行文本 def tex_to_sequences(text): word_seq=[] doc = nlp(text) for t in doc: # 找不到的词默认返回0,占位值可根据自己的需求修改 word_seq.append(word_dict.get(t.text, 0)) return word_seq df['sequences']= df['text'].apply(tex_to_sequences)
内容的提问来源于stack exchange,提问作者Kbstar
相关产品推荐
相关产品推荐

