🚀 轉述檢測模型
這是一個由 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
。因此,在處理長文本時結果可能不準確。
💡 使用建議
在使用該模型處理長文本時,需謹慎對待結果,可考慮對長文本進行適當的分割處理。