Paraphrase Detection and Generation
Module: Natural Language Processing | Difficulty: Advanced
Semantic Textual Similarity
Paraphrase Detection
Evaluation (MRPC)
| Model | Accuracy | F1 |
|---|---|---|
| BERT | 88.9 | 91.7 |
| RoBERTa | 92.1 | 94.3 |
Paraphrase Generation
import torch
import torch.nn as nn
class ParaphraseDetector(nn.Module):
def __init__(self, bert_model):
super().__init__()
self.bert = bert_model
self.classifier = nn.Linear(768, 2)
def forward(self, input_ids, attention_mask):
outputs = self.bert(input_ids, attention_mask=attention_mask)
cls_output = outputs.last_hidden_state[:, 0]
return self.classifier(cls_output)
Research Insight: Paraphrase detection is easier than generation because it only requires binary classification. The challenge is distinguishing between semantic similarity and true paraphrasing. Contrastive learning improves paraphrase detection by learning better similarity metrics.