File size: 2,312 Bytes
0767e59
af53f00
 
 
 
 
 
 
0767e59
af53f00
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0767e59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
---
title: Norus Tool
emoji: 🔥
colorFrom: green
colorTo: purple
sdk: docker
app_file: app.py
pinned: true
---
# NORUS Tool 🧠📄

[![🤗 Hugging Face Spaces](https://img.shields.io/badge/🤗-HuggingFace_Spaces-blue)](https://huggingface.co/spaces/mabil/norus-tool)

**NORUS** (Novelty and Originality Recognition Utility System) è uno strumento basato su intelligenza artificiale che consente l'analisi semantica di articoli scientifici in formato PDF, confrontandoli con articoli locali o pubblicati su PubMed. Il tool restituisce misure di **similarità semantica**, **token overlap** e un indice composito chiamato **OUI (Originality & Uniqueness Index)**.

## 🚀 Funzionalità principali

- ✅ Caricamento PDF da analizzare
- 📂 Confronto con PDF locali o articoli da PubMed
- 🤖 Estrazione di embedding semantici tramite SciBERT
- 📊 Calcolo di:
  - Similarità semantica (cosine similarity)
  - Sovrapposizione testuale (token overlap)
  - Indice OUI (originalità e novità)
- 📈 Visualizzazione interattiva dei risultati via Chart.js

## 🧪 OUI - Originality & Uniqueness Index

\`\`\`math
OUI = 1 - (α × semantic_similarity + β × token_overlap)
\`\`\`

- α = 0.7 → penalizza la somiglianza semantica
- β = 0.3 → penalizza la ripetizione letterale
- L'OUI misura **quanto un documento è originale**, sia nel contenuto che nella forma.

## 🧱 Architettura

- `Flask` come backend web
- `pdfplumber` per l'estrazione del testo dai PDF
- `nltk` per preprocessing linguistico
- `sentence-transformers` con modello `allenai/scibert_scivocab_uncased`
- `requests` per l'interfaccia con PubMed

## 📂 Struttura del progetto

```
.
├── app.py
├── Dockerfile
├── requirements.txt
├── static/
├── templates/
├── uploads/
├── README.md
```

## ▶️ Esecuzione locale

Per eseguire localmente:

1. Assicurati di avere Python 3.9+
2. Installa le dipendenze:

\`\`\`bash
pip install -r requirements.txt
\`\`\`

3. Avvia l'app:

\`\`\`bash
python app.py
\`\`\`

Apri il browser su `http://localhost:7860`

## 📡 Deploy su Hugging Face Spaces

Puoi caricare questo progetto come Space Docker-based su Hugging Face. Il `Dockerfile` è già configurato.

---
---
🧠 Developed by Marina Bilotta – Computational Chemistry & AI Research