Веб-приложение на основе искусственного интеллекта, которое предоставляет краткие резюме статей с использованием методов расширенного естественного языка (NLP).
Статья-Summarizer-USING-AI -это веб-приложение, предназначенное для суммирования длинных статей с использованием NLP. Приложение позволяет пользователям загружать свои собственные статьи или использовать образцы данных для генерации резюме в различных стилях, используя генеративную модель искусственного интеллекта.
Набор данных, используемый для обучения и оценки, является набором данных PubMed Summarization. Он включает в себя статьи из PubMed с соответствующими тезисами, используемыми в качестве резюме.
Загрузка набора данных :
from datasets import load_dataset
pubmed_data = load_dataset ( "ccdv/pubmed-summarization" , split = 'train[:1000]' )Первоначальная очистка данных :
pubmed_data = pubmed_data . filter ( lambda x : x [ 'article' ] is not None and x [ 'abstract' ] is not None )Исследовательский анализ данных :
print ( pubmed_data [ 0 ]) # View the first data entry Текст -токенизация :
from nltk . tokenize import sent_tokenize , word_tokenize
sentences = sent_tokenize ( article_text )
words = word_tokenize ( sentence )Остановить слова удаление :
from nltk . corpus import stopwords
stop_words = set ( stopwords . words ( 'english' ))
words = [ word for word in words if word . lower () not in stop_words ]Лемматизация :
from nltk . stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer ()
words = [ lemmatizer . lemmatize ( word . lower ()) for word in words ]Конфигурация API :
google.generativeai для генерации моделей. import google . generativeai as genai
import os
api_key = os . environ . get ( 'your_api_key' )
genai . configure ( api_key = api_key )Инициализация модели :
model = genai . GenerativeModel ()Настраивайте модель с помощью набора данных PubMed, чтобы улучшить качество резюме.
# Example pseudo-code for fine-tuning
model . train ( dataset = pubmed_data , epochs = 10 , learning_rate = 0.001 )Для извлечения суммирования приложение использует традиционные методы НЛП для определения ключевых предложений из статьи, не полагаясь на генеративную модель.
Извлечение сводного сценария :
Переименовать предоставленную extractive_summary.py в app.py и переместите его в корень проекта:
mv /mnt/data/extractive_summary.py app.pyОсновная логика :
# 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 summaryИнтеграция :
@ 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 )Оцените производительность модели с использованием таких метрик, как Rouge или 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 } ' )Установка колбы :
from flask import Flask
from flask_login import LoginManager
app = Flask ( __name__ )
app . secret_key = 'your_secret_key'
login_manager = LoginManager ( app )Маршруты и аутентификация :
@ app . route ( '/login' , methods = [ 'GET' , 'POST' ])
def login ():
# login logic here
return render_template ( 'login.html' )Шаблоны :
<!-- 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 >Пользовательский опыт :
Клонировать репозиторий :
git clone https://github.com/yourusername/Article-Summarizer-Using-AI.gitПерейдите к каталогу проекта :
cd Article-Summarizer-Using-AIСоздайте виртуальную среду :
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Установить зависимости :
pip install -r requirements.txtУстановить переменные среды :
.env с вашим ключом API. your_api_key=<YOUR_GENERATIVE_AI_API_KEY>
Загрузите данные NLTK :
Сценарий обрабатывает загрузку необходимых данных NLTK.
Запустите приложение :
flask run --port=5001Доступ к приложению :
http://127.0.0.1:5001 в вашем браузере.Войти/регистр :
Суммируйте статьи :
Просмотреть резюме :
Спасибо, что использовали статью-Summarizer-USING-AI ! Мы надеемся, что вы найдете это полезным для ваших потребностей в суммировании.