🚀 转述检测模型
这是一个由 DeepPavlov 开发的转述检测器的版本(文档详情),已移植到 Transformers
格式。所有功劳归于 DeepPavlov 的作者们。该模型在来自 http://paraphraser.ru/ 的数据集上进行了训练,可将文本分类为转述(类别 1)或非转述(类别 0)。
🚀 快速开始
此转述检测模型可方便地对文本是否为转述进行分类。以下是使用该模型的基本步骤。
💻 使用示例
基础用法
import torch
from transformers import AutoModelForSequenceClassification, BertTokenizer
model_name = 'cointegrated/rubert-base-cased-dp-paraphrase-detection'
model = AutoModelForSequenceClassification.from_pretrained(model_name).cuda()
tokenizer = BertTokenizer.from_pretrained(model_name)
def compare_texts(text1, text2):
batch = tokenizer(text1, text2, return_tensors='pt').to(model.device)
with torch.inference_mode():
proba = torch.softmax(model(**batch).logits, -1).cpu().numpy()
return proba[0]
print(compare_texts('Сегодня на улице хорошая погода', 'Сегодня на улице отвратительная погода'))
print(compare_texts('Сегодня на улице хорошая погода', 'Отличная погодка сегодня выдалась'))
高级用法
在 DeepPavlov 仓库中,分词器使用 max_seq_length=64
,而此模型使用 model_max_length=512
。因此,在处理长文本时结果可能不准确。使用时需注意文本长度对结果的影响。
import torch
from transformers import AutoModelForSequenceClassification, BertTokenizer
model_name = 'cointegrated/rubert-base-cased-dp-paraphrase-detection'
model = AutoModelForSequenceClassification.from_pretrained(model_name).cuda()
tokenizer = BertTokenizer.from_pretrained(model_name)
def compare_texts(text1, text2):
batch = tokenizer(text1, text2, return_tensors='pt').to(model.device)
with torch.inference_mode():
proba = torch.softmax(model(**batch).logits, -1).cpu().numpy()
return proba[0]
long_text1 = '这里可以是一段很长的文本内容,用于测试长文本情况下模型的表现。'
long_text2 = '这里同样是一段很长的文本内容,与上一段文本进行对比。'
print(compare_texts(long_text1, long_text2))
📄 许可证
文档中未提及许可证相关信息,如有需要请进一步查阅相关资料。
⚠️ 重要提示
在 DeepPavlov 仓库中,分词器使用 max_seq_length=64
,而此模型使用 model_max_length=512
。因此,在处理长文本时结果可能不准确。
💡 使用建议
在使用该模型处理长文本时,需谨慎对待结果,可考虑对长文本进行适当的分割处理。