Une application Web basée sur l'IA qui fournit des résumés concis d'articles utilisant des techniques avancées de traitement du langage naturel (NLP).
Article-Summizer-Using-AI est une application Web conçue pour résumer de longs articles à l'aide de NLP. L'application permet aux utilisateurs de télécharger leurs propres articles ou d'utiliser des exemples de données pour générer des résumés dans divers styles, en utilisant un modèle d'IA génératif.
L'ensemble de données utilisé pour la formation et l'évaluation est l'ensemble de données PubMed Résumé. Il comprend des articles de PubMed avec des résumés correspondants utilisés comme résumés.
Chargement de l'ensemble de données :
from datasets import load_dataset
pubmed_data = load_dataset ( "ccdv/pubmed-summarization" , split = 'train[:1000]' )Nettoyage initial des données :
pubmed_data = pubmed_data . filter ( lambda x : x [ 'article' ] is not None and x [ 'abstract' ] is not None )Analyse des données exploratoires :
print ( pubmed_data [ 0 ]) # View the first data entry Tokenisation du texte :
from nltk . tokenize import sent_tokenize , word_tokenize
sentences = sent_tokenize ( article_text )
words = word_tokenize ( sentence )Retrait des mots d'arrêt :
from nltk . corpus import stopwords
stop_words = set ( stopwords . words ( 'english' ))
words = [ word for word in words if word . lower () not in stop_words ]Lemmatisation :
from nltk . stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer ()
words = [ lemmatizer . lemmatize ( word . lower ()) for word in words ]Configuration de l'API :
google.generativeai pour la génération de modèles. import google . generativeai as genai
import os
api_key = os . environ . get ( 'your_api_key' )
genai . configure ( api_key = api_key )Initialisation du modèle :
model = genai . GenerativeModel ()Affinez le modèle avec l'ensemble de données PubMed pour améliorer la qualité du résumé.
# Example pseudo-code for fine-tuning
model . train ( dataset = pubmed_data , epochs = 10 , learning_rate = 0.001 )Pour une résumé extractif, l'application utilise des techniques de PNL traditionnelles pour identifier les phrases clés de l'article sans s'appuyer sur un modèle génératif.
Script de résumé extractif :
Renommez le fournit extractive_summary.py à app.py et le déplacer vers la racine du projet:
mv /mnt/data/extractive_summary.py app.pyLogique de base :
# Example of extractive summarization
def extractive_summary ( text ):
# Tokenize the text and rank sentences
sentences = sent_tokenize ( text )
# Rank and select key sentences (pseudo-code)
summary = ' ' . join ( sentences [: 3 ]) # Example: Select first 3 sentences
return summaryIntégration :
@ app . route ( '/summarize' , methods = [ 'POST' ])
def summarize ():
if 'file' in request . files and request . files [ 'file' ]. filename != '' :
file = request . files [ 'file' ]
article_text = file . read (). decode ( "utf-8" )
else :
sample_index = int ( request . form [ 'sample' ])
article_text = pubmed_data [ sample_index ][ 'article' ]
style = request . form . get ( 'style' , 'brief' )
summary_method = request . form . get ( 'method' , 'generative' )
if summary_method == 'generative' :
summary_text = preprocess_and_summarize ( article_text , style )
else :
summary_text = extractive_summary ( article_text )
return render_template ( 'result.html' , original = article_text , summary = summary_text )Évaluez les performances du modèle à l'aide de mesures telles que Rouge ou Bleu.
from nltk . translate . bleu_score import sentence_bleu
reference = [ reference_summary . split ()]
candidate = generated_summary . split ()
score = sentence_bleu ( reference , candidate )
print ( f'BLEU Score: { score } ' )Configuration du flacon :
from flask import Flask
from flask_login import LoginManager
app = Flask ( __name__ )
app . secret_key = 'your_secret_key'
login_manager = LoginManager ( app )Routes et authentification :
@ app . route ( '/login' , methods = [ 'GET' , 'POST' ])
def login ():
# login logic here
return render_template ( 'login.html' )Modèles :
<!-- templates/index.html -->
< form action =" {{ url_for('summarize') }} " method =" post " enctype =" multipart/form-data " >
< input type =" file " name =" file " >
< button type =" submit " > Summarize </ button >
</ form >Expérience utilisateur :
Clone le référentiel :
git clone https://github.com/yourusername/Article-Summarizer-Using-AI.gitAccédez au répertoire du projet :
cd Article-Summarizer-Using-AICréer un environnement virtuel :
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Installez les dépendances :
pip install -r requirements.txtDéfinir les variables d'environnement :
.env avec votre clé API. your_api_key=<YOUR_GENERATIVE_AI_API_KEY>
Télécharger les données NLTK :
Le script gère le téléchargement des données NLTK nécessaires.
Exécutez l'application :
flask run --port=5001Accéder à l'application :
http://127.0.0.1:5001 dans votre navigateur.Connexion / enregistrement :
Résumez les articles :
Afficher le résumé :
Merci d'utiliser l'article-Summizer-Using-ai ! Nous espérons que vous le trouverez utile pour vos besoins de résumé.