Категория

Форматирование, суммаризация и индексация текста с использованием ИИ на C#

2026-09-02 08:54:09 jie zou
AI Summarize:
ChatGPT
ChatGPT
Claude
Grok
Perplexity
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Автоматизация форматирования, обобщения и индексирования документов Word с помощью ИИ

Организации часто накапливают сотни или даже тысячи документов Word с течением времени. Эти файлы могут поступать из разных отделов, от сотрудников, поставщиков или из устаревших систем, что приводит к несоответствиям в шрифтах, структуре заголовков, нумерации, интервалах, колонтитулах и другом форматировании.

Подготовка таких документов к публикации, миграции или архивированию — это не просто задача по форматированию. Во многих случаях организациям также необходимо определить содержание каждого документа, извлечь ключевые метаданные, создать краткие резюме и организовать результаты в виде индекса документов с возможностью поиска.

Традиционная автоматизация Word хорошо справляется с фиксированными правилами форматирования, но становится сложной, когда структура документов различается. Подход на базе ИИ позволяет сначала понять логическую роль контента — например, заголовки, подзаголовки, основной текст, даты и типы документов, — а затем применить соответствующие операции.

В этой статье мы будем использовать Spire.Agent.Office для .NET для создания трехэтапного рабочего процесса обработки документов Word на C#:

Документы Word → Стандартизация форматирования → Извлечение метаданных и резюме → Индекс документов

Почему важна стандартизация документов Word с помощью ИИ

Стандартизация коллекции документов Word не всегда так проста, как применение одного и того же шрифта ко всем абзацам.

Типичная организация может иметь такие документы, как:

Input/
├── Employee_Travel_Policy.docx
├── Vendor_Onboarding_Guide.docx
├── Security_Incident_Report.docx
└── Remote_Work_Policy.docx

Даже если эти документы охватывают схожие бизнес-процессы, их внутренняя структура может значительно различаться.

Например, в одном документе может использоваться настоящий стиль Word Заголовок 1 для названий разделов, в то время как в другом — просто жирный текст 16-го кегля. В некоторых документах может использоваться нумерация разделов, например:

1. Цель
2. Область применения
3. Обязанности

в то время как в других может использоваться непоследовательная нумерация, например:

I. Цель
Раздел 2 - Область применения
3) Обязанности

Традиционная автоматизация документов обычно требует от разработчиков проверки позиций абзацев, стилей или текстовых шаблонов и написания правил для каждого варианта.

Обработка документов с помощью ИИ меняет подход. Вместо того чтобы указывать, что «абзац 3 должен быть заголовком», разработчики могут описать желаемый результат:

Определить название документа и иерархию заголовков, нормализовать стили заголовков и нумерацию, сохранив при этом исходное содержимое.

Уровень ИИ интерпретирует структуру документа, в то время как базовый движок документов Word выполняет фактическую обработку.

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

Что будет автоматизировано в этом примере

Наш пример рабочего процесса содержит три этапа обработки.

Этап 1: Стандартизация форматирования Word

Каждый исходный документ анализируется и переформатируется в соответствии с общим корпоративным стилем. Обработка включает:

  • Нормализацию шрифтов и их размеров
  • Определение названий документов
  • Применение единообразных уровней заголовков
  • Нормализацию нумерации заголовков
  • Стандартизацию межстрочных интервалов
  • Добавление общего колонтитула
  • Добавление номеров страниц в нижний колонтитул
  • Сохранение исходного текста, таблиц, изображений и гиперссылок

Результатом является стандартизированная версия каждого входного документа.

Этап 2: Извлечение метаданных и резюме

Затем стандартизированные документы анализируются индивидуально для извлечения такой информации, как:

  • Название документа
  • Отдел
  • Тип документа
  • Дата вступления в силу или дата выпуска
  • Ключевые слова
  • Резюме

Каждый результат сохраняется в виде небольшого структурированного документа Word с метаданными.

Этап 3: Создание индекса документов

Наконец, файлы метаданных объединяются и преобразуются в единый индекс документов Word.

Готовый индекс может содержать информацию следующего вида:

Название Отдел Тип Дата Резюме
1 Политика командировок HR Политика 15 июля 2026 г. Определяет требования к утверждению и возмещению командировочных расходов.
2 Руководство по онбордингу поставщиков Закупки Процедура 3 июня 2026 г. Описывает процесс регистрации и утверждения новых поставщиков.
3 Отчет об инциденте безопасности ИТ Отчет 8 августа 2026 г. Обобщает инцидент безопасности и принятые меры реагирования.

Это позволяет получить не только более аккуратные файлы Word, но и полезный обзор всей коллекции документов.

Настройка Spire.Agent.Office для C#

Сначала создайте проект .NET и установите Spire.Agent.Office через NuGet.

Вы можете установить пакет через диспетчер пакетов NuGet в Visual Studio или использовать .NET CLI:

dotnet add package Spire.Agent.Office

Затем импортируйте необходимые пространства имен:

using System;
using System.IO;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Doc;

Обработка документов с помощью ИИ следует простой схеме.

Сначала настройте экземпляр AIOptions с помощью SpireToken:

AIOptions options = new AIOptions();
options.SpireToken = "ваш SpireToken";

Вы можете запросить временный SpireToken для тестирования на странице временных лицензий Spire. После получения токена присвойте его свойству SpireToken перед вызовом API обработки ИИ.

Затем загрузите документ Word и создайте AIDocumentProcessor:

using (Document doc = new Document())
{
    doc.LoadFromFile("input.docx");

    AIDocumentProcessor processor = doc.AI(options);

    processor.ExecuteInstruction(
        doc,
        "Ваша инструкция на естественном языке",
        "output.docx"
    );
}

Важной частью является инструкция. Вместо ручного написания длинной последовательности вызовов API Word, мы описываем, как должен выглядеть документ, и позволяем агенту выполнить соответствующие операции.

В следующих разделах мы применим этот подход ко всему каталогу файлов Word.

Стандартизация форматирования Word с помощью ИИ

Предположим, документы, собранные из разных отделов, используют несогласованные шрифты, заголовки, нумерацию и макеты страниц.

Мы хотим, чтобы все они соответствовали одному корпоративному стилю:

  • Arial для всего текста
  • 11 пт для основного текста
  • 20 пт жирный для названия документа
  • 16 пт жирный для Заголовка 1
  • 13 пт жирный для Заголовка 2
  • Единообразная многоуровневая нумерация
  • Межстрочный интервал 1.15
  • Корпоративный колонтитул
  • Номера страниц по центру
  • Без изменений исходной формулировки

Следующий код обрабатывает каждый файл .docx во входном каталоге и сохраняет стандартизированные версии в новый каталог.

using System;
using System.IO;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Doc;

string inputFolder = @"E:\Documents\Input";
string outputFolder = @"E:\Documents\Standardized";
string spireToken = "ваш SpireToken";
Directory.CreateDirectory(outputFolder);

string aiRule = """
Проанализируйте структуру этого документа Word и стандартизируйте его форматирование в соответствии со следующими корпоративными правилами:

1. Сохраните все исходные формулировки. Не переписывайте, не обобщайте, не сокращайте и не удаляйте содержимое документа.
2. Используйте Arial в качестве шрифта по умолчанию и 11 пт для обычного основного текста.
3. Определите основное название документа и отформатируйте его как 20 пт жирный.
4. Определите логическую иерархию заголовков и примените соответствующие стили заголовков Word. Используйте 16 пт жирный для Заголовка 1 и 13 пт жирный для Заголовка 2.
5. Нормализуйте нумерацию разделов в последовательную иерархию, такую как 1, 1.1 и 1.1.1, где это уместно.
6. Используйте межстрочный интервал 1.15 для обычных абзацев основного текста и сохраняйте визуальную последовательность интервалов между абзацами.
7. Добавьте 'Библиотека корпоративных документов' в колонтитул документа.
8. Добавьте номера страниц по центру в нижний колонтитул.
9. Сохраните все существующие таблицы, изображения, гиперссылки и другие объекты документа.
10. Сохраните общую структуру документа и исходный смысл без изменений.
""";

var aiOpts = new AIOptions { SpireToken = spireToken };

foreach (var file in Directory.GetFiles(inputFolder, "*.docx"))
{
    var fileName = Path.GetFileName(file);
    var savePath = Path.Combine(outputFolder, fileName);

    using var doc = new Document();
    doc.LoadFromFile(file);

    var res = doc.AI(aiOpts).ExecuteInstruction(doc, aiRule, savePath);
    Console.WriteLine(res.Success ? $"Обработано: {fileName}" : $"Ошибка: {fileName} - {res.ErrorMessage}");
}

Важной деталью инструкции является требование определить логическую иерархию заголовков.

Это отличается от простого изменения шрифта каждого жирного абзаца. Агент может проанализировать, что представляет собой абзац, и определить, является ли он названием документа, заголовком основного раздела, подраздела или обычным текстом.

Для рабочих процессов управления документами правильные стили заголовков особенно полезны, так как они улучшают навигацию, автоматическое создание оглавления, закладки PDF, доступность и последующий парсинг документов.

Еще одно важное правило:

Сохраните все исходные формулировки.

Форматирование и переписывание контента обычно следует рассматривать как отдельные задачи. Когда целью этого этапа является стандартизация документа, ИИ не должен одновременно переписывать или обобщать исходный текст.

После выполнения выходной каталог содержит стандартизированные копии:

Standardized/
├── Employee_Travel_Policy.docx
├── Vendor_Onboarding_Guide.docx
├── Security_Incident_Report.docx
└── Remote_Work_Policy.docx

Следующий пример показывает, как выглядит несогласованно отформатированный документ Word до и после стандартизации с помощью ИИ.

До и после стандартизации форматирования документа

Извлечение метаданных и создание резюме документов

После того как форматирование стандартизировано, следующим шагом будет понимание того, что содержит каждый документ.

Вручную открывать сотни файлов и записывать их названия, отделы, даты, категории и резюме — трудоемкий процесс. Это задача, в которой понимание документов с помощью ИИ особенно полезно.

Для этого примера мы извлечем шесть полей из каждого документа:

  • Название
  • Отдел
  • Тип документа
  • Дата
  • Ключевые слова
  • Резюме

Вместо возврата произвольного текста инструкция требует предсказуемой структуры. Это облегчает последующую обработку результатов.

using System;
using System.IO;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Doc;

string inputFolder = @"E:\Documents\Standardized";
string outputFolder = @"E:\Documents\Metadata";
string spireToken = "ваш SpireToken";

Directory.CreateDirectory(outputFolder);

string aiRule = """
Проанализируйте этот документ Word и создайте краткий отчет с метаданными.

Извлеките следующую информацию из фактического содержимого документа:
- Название
- Отдел или ответственная бизнес-функция
- Тип документа, например: Политика, Процедура, Отчет, Руководство или Записка
- Дата вступления в силу или дата выпуска
- От 3 до 5 ключевых слов
- Резюме объемом примерно от 80 до 120 слов

Создайте новый краткий документ, содержащий только эти поля.
Используйте строго следующие метки:

Название:
Отдел:
Тип документа:
Дата:
Ключевые слова:
Резюме:

Не придумывайте информацию, которую невозможно обоснованно определить из источника. Если конкретная дата или отдел не указаны, используйте 'Не указано'. Резюме должно быть фактическим и основываться только на исходном документе.
""";

var aiOpts = new AIOptions { SpireToken = spireToken };

foreach (var file in Directory.GetFiles(inputFolder, "*.docx"))
{
    var fileName = Path.GetFileNameWithoutExtension(file);
    var savePath = Path.Combine(outputFolder, $"{fileName}_Metadata.docx");

    using var doc = new Document();
    doc.LoadFromFile(file);

    var res = doc.AI(aiOpts).ExecuteInstruction(doc, aiRule, savePath);
    Console.WriteLine(res.Success ? $"Метаданные извлечены: {fileName}" : $"Ошибка: {fileName} - {res.ErrorMessage}");
}

Сгенерированный документ с метаданными выглядит так:

Извлеченные метаданные и резюме, созданное ИИ

Требование использовать фиксированные метки важно.

Если в запросе просто сказать «обобщить документ», разные документы могут дать существенно разные структуры вывода. Требование единообразных полей делает промежуточные файлы гораздо более удобными для объединения в финальный индекс.

Инструкция также прямо предписывает агенту не выдумывать отсутствующие метаданные. Для деловых записей "Не указано" обычно полезнее, чем угадывание отдела или даты, которые не указаны в документе.

Создание индекса документов из нескольких файлов Word

На данный момент у нас есть один файл метаданных для каждого обработанного документа:

Metadata/
├── Employee_Travel_Policy_Metadata.docx
├── Vendor_Onboarding_Guide_Metadata.docx
├── Security_Incident_Report_Metadata.docx
└── Remote_Work_Policy_Metadata.docx

Последний шаг — консолидация этих отдельных файлов метаданных в единый индекс документов на базе Word.

Вместо того чтобы вручную открывать каждый документ метаданных, извлекать из него текст и объединять результаты в C#, мы можем передать все файлы метаданных напрямую в Spire.Agent.Office через параметр attachments. Агент ИИ считывает прикрепленные документы, извлекает из каждого помеченные поля и создает новый документ Word, содержащий консолидированный индекс.

Параметр attachments полезен, когда задача ИИ зависит от нескольких вспомогательных файлов, а не от одного основного входного документа. В этом примере нет существующего документа Word, который нужно изменять. Поэтому мы создаем пустой объект Document и используем файлы метаданных в качестве источников информации для создания финального индекса.

using System;
using System.IO;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Doc;

string metadataFolder = @"E:\Documents\Metadata";
string outputPath = @"E:\Documents\Document_Index.docx";
string spireToken = "ваш SpireToken";
var attachments = Directory.GetFiles(metadataFolder, "*_Metadata.docx");

string aiRule = """
Прочитайте все документы метаданных, предоставленные во вложениях, и создайте консолидированный индекс документов Word.

Создайте заголовок 'Индекс документов' в верхней части документа.

Создайте таблицу со следующими столбцами:
№ | Название | Отдел | Тип документа | Дата | Ключевые слова | Резюме

Требования:
1. Создайте одну строку для каждого документа метаданных.
2. Пронумеруйте записи последовательно, начиная с 1.
3. Извлеките значения из помеченных полей в каждом вложении.
4. Сохраните извлеченную информацию и не выдумывайте отсутствующие данные.
5. Используйте 'Не указано', если поле недоступно.
6. Сделайте заголовок таблицы жирным.
7. Сделайте столбец 'Резюме' шире, чем другие столбцы.
8. Используйте чистый профессиональный стиль, подходящий для внутреннего реестра документов.
9. Создайте автономный документ Word, содержащий только финальный индекс документов.
""";

var aiOpts = new AIOptions { SpireToken = spireToken };

using var doc = new Document();
var res = doc.AI(aiOpts).ExecuteInstruction(doc, aiRule, outputPath, attachments);

Console.WriteLine(res.Success
    ? $"Индекс документов создан: {outputPath}"
    : $"Не удалось создать индекс документов: {res.ErrorMessage}");

Финальный результат сохраняется как:

Document_Index.docx

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

Консолидированный индекс документов, созданный из нескольких файлов Word

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

Рекомендации по надежной обработке документов с помощью ИИ

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

Отделяйте форматирование от анализа контента

Избегайте просьб к агенту стандартизировать форматирование, переписывать текст, обобщать документ и извлекать метаданные в одной большой инструкции.

Это разные операции с разными целями.

Более безопасный рабочий процесс выглядит так:

Исходный документ
        ↓
Стандартизация форматирования
        ↓
Стандартизированный документ
        ↓
Извлечение метаданных
        ↓
Структурированные метаданные
        ↓
Индекс документов

Это также облегчает выявление и отладку проблем.

Четко определяйте правила форматирования

Инструкции типа:

Сделайте документ профессиональным.

оставляют слишком много места для интерпретации.

Везде, где важна последовательность, указывайте фактические корпоративные правила:

Arial, 11 пт для основного текста
20 пт для названия документа
16 пт для Заголовка 1
13 пт для Заголовка 2
Межстрочный интервал 1.15
Нумерация 1 / 1.1 / 1.1.1

Тот же принцип применяется к колонтитулам, форматированию таблиц и макету страницы.

Защищайте исходный контент

Для задач форматирования явно включайте требования, такие как:

Сохраните все исходные формулировки.

и:

Не переписывайте, не обобщайте, не сокращайте и не удаляйте содержимое документа.

Исходные файлы также следует сохранять, а не перезаписывать во время автоматизированной пакетной обработки.

Практичная структура папок:

Documents/
├── Input/
├── Standardized/
├── Metadata/
└── Document_Index.docx

Запрашивайте структурированные метаданные

Когда извлеченная информация будет повторно использоваться программно, предсказуемый вывод ценнее, чем творческий.

Вместо:

Расскажите, о чем этот документ.

используйте фиксированную схему:

Название:
Отдел:
Тип документа:
Дата:
Ключевые слова:
Резюме:

Это значительно упрощает дальнейшую обработку.

Явно обрабатывайте отсутствующую информацию

Не каждый документ содержит название отдела, дату вступления в силу, номер документа или владельца.

Скажите ИИ, что делать, когда информация отсутствует:

Используйте "Не указано" вместо угадывания.

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

Проверяйте результаты особой важности

Метаданные и резюме, созданные ИИ, не должны автоматически рассматриваться как авторитетные записи в критически важных рабочих процессах.

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

Заключение

Пакетная обработка Word часто включает две разные проблемы.

Первая — это автоматизация документов: изменение шрифтов, применение стилей, создание колонтитулов, управление нумерацией и создание файлов Word.

Вторая — это понимание документов: определение того, что представляет собой контент, идентификация типов документов, поиск дат и отделов, извлечение ключевых слов и создание резюме.

Традиционные API Word высокоэффективны, когда разработчики уже точно знают, какой контент нужно изменить. Обработка с помощью ИИ становится особенно полезной, когда документы несогласованы и программному обеспечению сначала нужно понять их структуру, прежде чем решать, как их обрабатывать.

Используя Spire.Agent.Office в C#, эти две возможности можно объединить в один рабочий процесс:

Анализ → Стандартизация → Извлечение → Организация

В приведенном выше примере папка, содержащая несогласованные документы Word, преобразуется в стандартизированную коллекцию документов, набор структурированных записей метаданных и, наконец, в централизованный индекс документов Word.

Та же архитектура может быть расширена на другие корпоративные рабочие процессы, такие как библиотеки политик, руководства по процедурам, комплаенс-документация, архивы проектов, записи HR, документация поставщиков и миграция устаревших документов.

Вместо того чтобы вручную просматривать и организовывать файлы по одному, разработчики могут определить необходимые правила документа и структуру информации на естественном языке и автоматизировать повторяющиеся части рабочего процесса, при этом создавая реальные, редактируемые документы Word.

См. также