使用多语言BERT处理DataFrame报错,求解决方案
解决BERT Tokenizer处理DataFrame时的ValueError问题
报错原因
你直接将整个DataFrame对象传入tokenizer,但BERT Tokenizer仅接受单个字符串、字符串列表或预分词的字符串列表作为输入,DataFrame类型不在支持范围内。你的文本数据存储在DataFrame的findings列中,需要先提取该列的文本序列。
修正后的代码
import pandas as pd from transformers import BertTokenizer, TFBertModel # 读取数据 df = pd.read_csv("/content/drive/text.csv") # 提取findings列的文本列表 text_list = df['findings'].tolist() # 初始化tokenizer和模型 tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-cased') model = TFBertModel.from_pretrained("bert-base-multilingual-cased") # 处理文本并获取模型输出 encoded_input = tokenizer(text_list, padding=True, truncation=True, return_tensors='tf') output = model(encoded_input)
关键说明
df['findings'].tolist()将DataFrame的目标列转换为字符串列表,完全符合Tokenizer的输入要求- 添加
padding=True和truncation=True是为了处理长度不一致的文本,确保所有输入序列长度统一(BERT模型要求固定长度输入)
内容的提问来源于stack exchange,提问作者Jacob
相关产品推荐
相关产品推荐

