программа сжимает готовый текст

 - пример программы на Python, которая использует алгоритмы обработки естественного языка для создания краткого содержания текста.

Эта программа будет использовать библиотеку nltk для выделения ключевых предложений, которые передают основной смысл исходного текста.




import nltk
from nltk.corpus import stopwords
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.probability import FreqDist
from heapq import nlargest

nltk.download('punkt')
nltk.download('stopwords')

def summarize_text(text, compression_ratio=0.5):
    if not text:
        return ""

    sentences = sent_tokenize(text)
    words = word_tokenize(text.lower())
    stop_words = set(stopwords.words('russian'))
    words_filtered = [word for word in words if word not in stop_words and word.isalnum()]

    word_frequencies = FreqDist(words_filtered)
    most_common_words = nlargest(100, word_frequencies, key=word_frequencies.get)

    sentence_scores = {}
    for sentence in sentences:
        for word in word_tokenize(sentence.lower()):
            if word in most_common_words:
                if sentence not in sentence_scores:
                sentence_scores[sentence] = word_frequencies[word]
                else:
                sentence_scores[sentence] += word_frequencies[word]

    select_length = int(len(sentences) * compression_ratio)
    summary_sentences = nlargest(select_length, sentence_scores, key=sentence_scores.get)
    summary = ' '.join(summary_sentences)
    return summary

# Пример использования:
large_text = """
Ваш большой текст здесь...
"""
print(summarize_text(large_text))




Этот код сначала разбивает текст на предложения и слова, удаляет стоп-слова, вычисляет частоту слов и выбирает ключевые предложения, которые составляют сжатое содержание. Вы можете изменить параметр compression_ratio, чтобы контролировать степень сжатия текста. Убедитесь, что у вас установлены необходимые библиотеки NLTK перед запуском программы.


Рецензии

Завершается прием произведений на конкурс «Георгиевская лента» за 2021-2025 год. Рукописи принимаются до 24 февраля, итоги будут подведены ко Дню Великой Победы, объявление победителей состоится 7 мая в ЦДЛ. Информация о конкурсе – на сайте georglenta.ru Представить произведения на конкурс →