Aplikasi web berbasis AI yang memberikan ringkasan ringkas dari artikel yang menggunakan teknik pemrosesan bahasa canggih (NLP).
Article-Summarizer-using-AI adalah aplikasi web yang dirancang untuk meringkas artikel panjang menggunakan NLP. Aplikasi ini memungkinkan pengguna untuk mengunggah artikel mereka sendiri atau menggunakan data sampel untuk menghasilkan ringkasan dalam berbagai gaya, menggunakan model AI generatif.
Dataset yang digunakan untuk pelatihan dan evaluasi adalah dataset peringkasan PubMed. Ini termasuk artikel dari PubMed dengan abstrak yang sesuai yang digunakan sebagai ringkasan.
Memuat dataset :
from datasets import load_dataset
pubmed_data = load_dataset ( "ccdv/pubmed-summarization" , split = 'train[:1000]' )Pembersihan Data Awal :
pubmed_data = pubmed_data . filter ( lambda x : x [ 'article' ] is not None and x [ 'abstract' ] is not None )Analisis Data Eksplorasi :
print ( pubmed_data [ 0 ]) # View the first data entry Tokenisasi Teks :
from nltk . tokenize import sent_tokenize , word_tokenize
sentences = sent_tokenize ( article_text )
words = word_tokenize ( sentence )Hentikan Penghapusan Kata :
from nltk . corpus import stopwords
stop_words = set ( stopwords . words ( 'english' ))
words = [ word for word in words if word . lower () not in stop_words ]Lemmatisasi :
from nltk . stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer ()
words = [ lemmatizer . lemmatize ( word . lower ()) for word in words ]Konfigurasi API :
google.generativeai untuk pembuatan model. import google . generativeai as genai
import os
api_key = os . environ . get ( 'your_api_key' )
genai . configure ( api_key = api_key )Inisialisasi Model :
model = genai . GenerativeModel ()Menyaring model dengan dataset PubMed untuk meningkatkan kualitas ringkasan.
# Example pseudo-code for fine-tuning
model . train ( dataset = pubmed_data , epochs = 10 , learning_rate = 0.001 )Untuk peringkasan ekstraktif, aplikasi ini menggunakan teknik NLP tradisional untuk mengidentifikasi kalimat -kalimat utama dari artikel tanpa mengandalkan model generatif.
Skrip ringkasan ekstraktif :
Ubah nama yang disediakan extractive_summary.py menjadi app.py dan pindahkan ke root proyek:
mv /mnt/data/extractive_summary.py app.pyLogika inti :
# 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 summaryIntegrasi :
@ 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 )Evaluasi kinerja model menggunakan metrik seperti Rouge atau 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 } ' )Pengaturan Flask :
from flask import Flask
from flask_login import LoginManager
app = Flask ( __name__ )
app . secret_key = 'your_secret_key'
login_manager = LoginManager ( app )Rute dan otentikasi :
@ app . route ( '/login' , methods = [ 'GET' , 'POST' ])
def login ():
# login logic here
return render_template ( 'login.html' )Template :
<!-- 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 >Pengalaman Pengguna :
Klon Repositori :
git clone https://github.com/yourusername/Article-Summarizer-Using-AI.gitArahkan ke Direktori Proyek :
cd Article-Summarizer-Using-AIBuat lingkungan virtual :
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Instal dependensi :
pip install -r requirements.txtSetel variabel lingkungan :
.env dengan kunci API Anda. your_api_key=<YOUR_GENERATIVE_AI_API_KEY>
Unduh data NLTK :
Script menangani data NLTK yang diperlukan.
Jalankan aplikasi :
flask run --port=5001Akses aplikasi :
http://127.0.0.1:5001 di browser Anda.Login/Daftar :
Ringkas artikel :
Ringkasan Lihat :
Terima kasih telah menggunakan artikel-summarizer-using-ai ! Kami harap Anda merasa berguna untuk kebutuhan ringkasan Anda.