如何为 BERT 准备文本 - 出现错误

K C*_*K C 4 nlp python-3.x transfer-learning bert-language-model

我正在尝试学习 BERT 进行文本分类。我在准备使用 BERT 的数据时发现一些问题。

从我的数据集中,我将情绪和评论分为:

X = df['sentiments']
y = df['reviews'] #it contains four different class of reviews
Run Code Online (Sandbox Code Playgroud)

下一个,

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
train_encodings = tokenizer(X_train, truncation=True, padding=True, max_length=512) 
Run Code Online (Sandbox Code Playgroud)

这是我收到错误的地方:

X = df['sentiments']
y = df['reviews'] #it contains four different class of reviews
Run Code Online (Sandbox Code Playgroud)

当我尝试将 X 转换为列表并使用它时,出现另一个错误:

TypeError: TextEncodeInput must be Union[TextInputSequence, Tuple[InputSequence, InputSequence]]
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下问题出在哪里吗?之前我遵循了 20 个新闻数据集的教程,结果很有效。但现在当我在另一个项目中使用它时,它不起作用,我感到很难过。

谢谢。

Ash*_*'Sa 7

错误是因为,您的X = df['sentiments']y = df['reviews']行,其中您的 X 和 y 仍然是数据框列(或数据框系列),而不是列表。更改它们的一个简单方法是:

X = df['sentiments'].valuesy = df['reviews'].values

它返回 numpy 数组,并且它可以工作。如果 notit 可以进一步转换为 python 列表使用

X = df['sentiments'].values.tolist()y = df['reviews'].values.tolist()