基于pandas、pytorch、bert,用一段python代码比较excel两个sheet同一个位置文本的相似度,输出到第三个sheet相同位置
时间: 2024-05-14 13:13:20 浏览: 70
的单元格中。
很高兴回答您的问题!以下是满足您要求的 Python 代码:
```
// 导入必要的库
import pandas as pd
from transformers import BertTokenizer, BertModel
import torch
// 加载Bert模型和tokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
model = BertModel.from_pretrained('bert-base-chinese')
// 加载Excel文件
excel = pd.read_excel('filename.xlsx', sheet_name=None)
// 比较两个sheet相同位置的文本相似度,并输出到第三个sheet相同位置的单元格中
for index, row in excel['Sheet1'].iterrows():
text1 = row['Column1']
text2 = excel['Sheet2'].iloc[index]['Column1']
tokens = tokenizer.encode_plus(text1, text2, max_length=128, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
_, pooler_output = model(**tokens)
similarity = torch.cosine_similarity(pooler_output[0], pooler_output[1], dim=0)
excel['Sheet3'].loc[index, 'Column1'] = similarity.item()
// 将结果保存到新的Excel文件中
excel_writer = pd.ExcelWriter('result.xlsx', engine='xlsxwriter')
for sheet, dataframe in excel.items():
dataframe.to_excel(excel_writer, sheet_name=sheet, index=False)
excel_writer.save()
```
希望以上代码能够满足您的需求!如果您还有其他问题,请随时问我。
阅读全文
相关推荐


















