欢迎访问宙启技术站
智能推送

Python中使用BertModel()进行中文短文本分类任务

发布时间:2024-01-06 17:51:57

要使用BertModel()进行中文短文本分类任务,需要先安装并导入相应的库,如transformerstorch。下面是一个使用例子,该例子使用了一个预训练的中文BERT模型来进行中文短文本情感分类任务。

首先,安装所需的库。在命令行中运行以下命令:

pip install transformers torch

接下来,导入所需的库:

import torch
from transformers import BertTokenizer, BertForSequenceClassification

加载Bert模型和tokenizer:

tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
model = BertForSequenceClassification.from_pretrained('bert-base-chinese')

准备输入数据并进行预处理:

text = "这部电影真的很棒!"
input_ids = tokenizer.encode(text, add_special_tokens=True)
input_ids = torch.tensor(input_ids).unsqueeze(0)  # 增加batch维度

将输入数据传入模型进行预测:

outputs = model(input_ids)
logits = outputs.logits

计算预测结果:

predicted_labels = torch.argmax(logits, dim=1)

最后,可以打印出预测结果:

if predicted_labels.item() == 0:
    print("Negative")
else:
    print("Positive")

完整的代码如下:

import torch
from transformers import BertTokenizer, BertForSequenceClassification

tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
model = BertForSequenceClassification.from_pretrained('bert-base-chinese')

text = "这部电影真的很棒!"
input_ids = tokenizer.encode(text, add_special_tokens=True)
input_ids = torch.tensor(input_ids).unsqueeze(0)

outputs = model(input_ids)
logits = outputs.logits

predicted_labels = torch.argmax(logits, dim=1)

if predicted_labels.item() == 0:
    print("Negative")
else:
    print("Positive")

这个例子展示了如何使用预训练的Bert模型进行中文短文本情感分类任务。该例子中使用了一个预训练的中文BERT模型,将输入文本编码成token,并将其传入Bert模型进行预测,然后根据预测结果输出情感分类。在实际应用中,你可能需要根据自己的具体任务和数据进行适当的调整。