Eine KI-basierte Webanwendung, die präzise Zusammenfassungen von Artikeln mithilfe erweiterter Techniken für natürliche Sprachverarbeitung (NCLP) enthält.
Artikel-Abhaarungs-Use-ai ist eine Webanwendung, mit der langwierige Artikel mit NLP zusammengefasst sind. Mit der Anwendung können Benutzer ihre eigenen Artikel hochladen oder Beispieldaten verwenden, um Zusammenfassungen in verschiedenen Stilen zu generieren, wobei ein generatives KI -Modell verwendet wird.
Der für Schulungen und Bewertungen verwendete Datensatz ist der Datensatz von PubMed Summarization. Es enthält Artikel von PubMed mit entsprechenden Abstracts als Zusammenfassungen.
Laden des Datensatzes :
from datasets import load_dataset
pubmed_data = load_dataset ( "ccdv/pubmed-summarization" , split = 'train[:1000]' )Erstdatenreinigung :
pubmed_data = pubmed_data . filter ( lambda x : x [ 'article' ] is not None and x [ 'abstract' ] is not None )Explorationsdatenanalyse :
print ( pubmed_data [ 0 ]) # View the first data entry Text Tokenisierung :
from nltk . tokenize import sent_tokenize , word_tokenize
sentences = sent_tokenize ( article_text )
words = word_tokenize ( sentence )STOP -Wörter Entfernung :
from nltk . corpus import stopwords
stop_words = set ( stopwords . words ( 'english' ))
words = [ word for word in words if word . lower () not in stop_words ]Lemmatisierung :
from nltk . stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer ()
words = [ lemmatizer . lemmatize ( word . lower ()) for word in words ]API -Konfiguration :
google.generativeai -Bibliothek für die Modellgenerierung. import google . generativeai as genai
import os
api_key = os . environ . get ( 'your_api_key' )
genai . configure ( api_key = api_key )Modellinitialisierung :
model = genai . GenerativeModel ()Fein des Modells mit dem PubMed-Datensatz optimieren, um die zusammenfassende Qualität zu verbessern.
# Example pseudo-code for fine-tuning
model . train ( dataset = pubmed_data , epochs = 10 , learning_rate = 0.001 )Für die extraktive Zusammenfassung verwendet die Anwendung herkömmliche NLP -Techniken, um wichtige Sätze aus dem Artikel zu identifizieren, ohne sich auf ein generatives Modell zu verlassen.
Rohstoff -Zusammenfassungsskript :
Benennen Sie die bereitgestellte extractive_summary.py in app.py um und verschieben Sie es in das Projektroot:
mv /mnt/data/extractive_summary.py app.pyKernlogik :
# 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 summaryIntegration :
@ 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 )Bewerten Sie die Leistung des Modells anhand von Metriken wie Rouge oder 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 } ' )Flask Setup :
from flask import Flask
from flask_login import LoginManager
app = Flask ( __name__ )
app . secret_key = 'your_secret_key'
login_manager = LoginManager ( app )Routen und Authentifizierung :
@ app . route ( '/login' , methods = [ 'GET' , 'POST' ])
def login ():
# login logic here
return render_template ( 'login.html' )Vorlagen :
<!-- 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 >Benutzererfahrung :
Klonen Sie das Repository :
git clone https://github.com/yourusername/Article-Summarizer-Using-AI.gitNavigieren Sie zum Projektverzeichnis :
cd Article-Summarizer-Using-AIErstellen Sie eine virtuelle Umgebung :
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Abhängigkeiten installieren :
pip install -r requirements.txtUmgebungsvariablen festlegen :
.env -Datei mit Ihrem API -Schlüssel. your_api_key=<YOUR_GENERATIVE_AI_API_KEY>
Laden Sie NLTK -Daten herunter :
Das Skript erledigt das Herunterladen der erforderlichen NLTK -Daten.
Führen Sie die Anwendung aus :
flask run --port=5001Zugriff auf die App :
http://127.0.0.1:5001 in Ihrem Browser.Login/Register :
Artikel zusammenfassen :
Zusammenfassung anzeigen :
Vielen Dank für die Verwendung von Artikeln-Ablagerungs-Use-Use-ai ! Wir hoffen, dass Sie es für Ihre Zusammenfassungsbedürfnisse nützlich finden.