<< Click to Display Table of Contents >> Разработка > Примеры разработки > Интеллектуальная обработка документов Как добавить дополнительный классификатор |
Ситуация
При интеллектуальной обработке и занесении в Directum RX среди входящих писем необходимо различать обычные письма и претензии.
Важно. В данном примере рассмотрим случай, когда в карточке документа в поле Примечание указывается, является ли письмо претензией. Для упрощения более сложная логика обработки документов в примере не рассматривается.
Решение
В базовой конфигурации интеллектуальной обработки документов используется классификация по типу документов. Это позволяет из общего потока документов выделять входящие письма. Чтобы добавить классификацию по еще одному признаку и среди входящих писем различать обычные письма и претензии, подключите дополнительный классификатор. Для этого:
1.В сервисах Directum Ario создайте дополнительный классификатор LetterClassifier для определения обычных писем и претензий. Подробнее см. в руководстве администратора Directum RX, раздел «Создание классификатора».
2.Подготовьте документы для обучения классификатора. Документы для обучения разместите, например, в папках «Обычное письмо» и «Претензия». Потребуется минимум 100 документов каждого типа.
3.В среде разработки Directum RX cоздайте решение.
4.В новом решении создайте перекрытие модуля Sungero.SmartProcessing из базового решения. Подробнее см. пример перекрытия модуля.
5.В редакторе перекрытия модуля в группе «События» перейдите по ссылке Инициализация. В редакторе программного кода в обработчике события Initializing() укажите дополнительный классификатор LetterClassifier, который будет вызываться при обработке документов:
public override void Initializing(Sungero.Domain.ModuleInitializingEventArgs e)
{
base.Initializing(e);
InitializationLogger.Debug("Init: Fill smart processing additional classifiers.");
FillSmartAdditionalClassifiers();
}
[Public]
public virtual void FillSmartAdditionalClassifiers()
{
var smartProcessingSettings = Sungero.Docflow.PublicFunctions.SmartProcessingSetting.GetSettings();
if (smartProcessingSettings != null)
{
// Добавление классификатора LetterClassifier для определения обычных
// писем и претензий.
var classifierId = smartProcessingSettings.LetterClassifierId;
var classifierName = smartProcessingSettings.LetterClassifierName;
if (smartProcessingSettings.AdditionalClassifiers.Where(c => c.ClassifierId == classifierId).Count() == 0)
{
var additionalClassifier = smartProcessingSettings.AdditionalClassifiers.AddNew();
additionalClassifier.ClassifierId = classifierId;
additionalClassifier.ClassifierName = classifierName;
smartProcessingSettings.Save();
}
}
}
6.В перекрытом модуле в функции создания входящих писем, обработанных сервисами Directum Ario, создайте функцию, которая вызывает базовую функцию создания входящего письма и добавляет в карточку документа в поле Примечание информацию о том, является ли письмо претензией:
/// <summary>
/// Создать входящее письмо.
/// </summary>
/// <param name="documentInfo" >Информация о документе.</param>
/// <param name="responsible" >Ответственный за верификацию.</param>
/// <returns>Входящее письмо.</returns>
[Public]
public virtual IOfficialDocument CreateIncomingLetter(IDocumentInfo documentInfo, IEmployee responsible)
{
// Вызов функции создания входящего письма.
var document = RecordManagement.IncomingLetters.Create();
Sungero.SmartProcessing.PublicFunctions.Module.FillIncomingLetterProperties(document, documentInfo, responsible);
// Заполнение информации в карточке документа в поле "Примечание" о том,
// является ли письмо претензией.
var additionalClassifiers = documentInfo.ArioDocument.RecognitionInfo.AdditionalClassifiers;
if (additionalClassifiers.Count > 0)
document.Note = string.Format("{0}", additionalClassifiers.FirstOrDefault().PredictedClass);
return document;
}
7.Опубликуйте изменения решения в локальную систему Directum RX.
8.В Directum RX на обложке модуля «Документооборот» в группе «Интеллектуальная обработка документов» выберите пункт Настройки. В открывшейся карточке перейдите на закладку «Правила». В табличной части в строке, которая соответствует логике обработки входящих писем, укажите:
Имя модуля c доработанной функцией обработки результата распознавания.
Имя функции обработки результата распознавания, которая была добавлена в п. 6.
Подробнее см. в руководстве администратора, раздел «Правила обработки документов».
9.Обучите классификатор на подготовленных документах. Подробнее см. в руководстве администратора Directum RX, раздел «Обучение классификатора».
10.Проверьте захват документов. Подробнее см. в руководстве администратора Directum RX, раздел «Проверка захвата документов».
Интеллектуальная обработка документов Как изменить стиль подсветки выделенного факта в области предпросмотра |
© Компания Directum, 2024 |