fasttext 错误:预测一次处理一行删除 '\n'

问题描述

嗨,我有一个包含文本的数据框列。我想使用 fasttext 模型从中进行预测。 我可以通过将 array of text 传递给 fasttext 模型来实现这一点。

import fasttext
d = {'id':[1,2,3],'name':['a','b','c']}
df = pd.DataFrame(data=d)

我从系列中删除了“\n”

name_list = df['name'].tolist()
name_list = [name.strip() for name in name_list]

并做出预测model.predict(name_list)

但是,我得到了 ValueError: predict processes one line at a time (remove '\n')

列表中没有“\n”,'\n' in name_list 返回 False

我也发现了一个有类似问题的 post,但仍然出现同样的错误

predictions=[]
for line in df['name']:
    pred_label=model.predict(line,k=-1,threshold=0.5)[0][0]
    predictions.append(pred_label)
df['prediction']=predictions

解决方法

在给出model.predict(name_list)之前,尝试给出一个for循环:

for item in name_list:
   item = item.replace("\n"," ")
   model.predict(item)