Научная статья на тему 'РЕШЕНИЕ ЗАДАЧ КЛАССИФИКАЦИИ ПРОЕКТНЫХ ДОКУМЕНТОВ В СТРОИТЕЛЬСТВЕ С ПОМОЩЬЮ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА'

РЕШЕНИЕ ЗАДАЧ КЛАССИФИКАЦИИ ПРОЕКТНЫХ ДОКУМЕНТОВ В СТРОИТЕЛЬСТВЕ С ПОМОЩЬЮ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
6
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
классификация текстов / предобработка текстов / машинное обучение / строительство / проектная документация / text classification / text preprocessing / machine learning / construction / project documentation

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Коновалова Е.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Коновалова Е.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CLASSIFICATION OF PROJECT DOCUMENTS IN CONSTRUCTION USING INTELLIGENT ANALYSIS

Article addresses the task of text document classification in the construction industry. An algorithm for building a classification model using the Bayesian method is considered. The research was conducted using the Python programming language, with project documentation from various buildings and structures used as source data. Pre-processing of documents was carried out, classifying them into one of two classes: explanatory notes and other documents from the design stage P.

Текст научной работы на тему «РЕШЕНИЕ ЗАДАЧ КЛАССИФИКАЦИИ ПРОЕКТНЫХ ДОКУМЕНТОВ В СТРОИТЕЛЬСТВЕ С ПОМОЩЬЮ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА»

УДК 004.9

Коновалова Е.А.

Санкт-Петербургский государственный архитектурно-строительный университет (г. Санкт-Петербург, Россия)

РЕШЕНИЕ ЗАДАЧ КЛАССИФИКАЦИИ ПРОЕКТНЫХ ДОКУМЕНТОВ В СТРОИТЕЛЬСТВЕ С ПОМОЩЬЮ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА

Аннотация: в статье рассматривается задача классификации текстовых документов в строительной отрасли. Рассмотрен алгоритм построения классификационной модели методом Байеса. Исследование проведено с использованием языка программирования Ру1коп, в качестве исходных данных был использована проектная документация различных зданий и сооружений. Выполнена предварительная обработка документов и классификация с отнесением их к одному из двух классов: пояснительные записки и другие документы проекта стадии П.

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

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

В качестве исходных данных для автоматической классификации документов использован набор из 400 документов проектной документации различных зданий и сооружений. Все рассматриваемые документы принадлежат к проектной документации (состав и расшифровка определяется [1]). Документы

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

Рис. 1. Блок-схема алгоритма создания классификатора.

Все вычисления выполняются на языке Python с использованием интегрированной среды PyCharm, c помощью которой можно писать, запускать и отлаживать код, устанавливать новые расширения и дополнительные модули, такие как: библиотеки машинного обучения и анализа данных, а также графические процессоры для визуализации полученных результатов [2].

Предварительная обработка текста.

Первым шагом для выполнения анализа текста в рамках программного проекта является перевод текста из формата PDF в Python. Существует несколько подходов и инструментов, которые позволяют осуществить данную операцию. Выбрано использование библиотеки PyPDF2, позволяющую работать напрямую с PDF-файлами. С помощью этой библиотеки можно осуществить чтение текста из PDF и сохранить его в переменную Python.

with open(pdf„document, "rb") as filehandle:

Рис. 2. Код для перевода текста из PDF с использованием библиотеки PyPDF2.

Проектная документация имеет множество символов, которые не нужны при анализе текста, поэтому необходимо оставить только следующие символы: а-я, А-Я, все символы текстов документов переведены в нижний регистр с помощью команды textlower(),

Рис. 3. Код для удаления слов и приведения текста в нижний регистр.

С помощью функции combine_words объединяем слова, которые перенесены на следующую строчку с помощью дефиса или разъединились при переводе из файлов с pdf расширением.

def combine_words(words): combined_wcrds = [] current_word = 11 for word in words:

if word[-1] == '-':

current_word += word[:-l] elif current_word:

current_word += word combined_words.append(current_word) current_word = '1 else:

combined_words.append(word) if current_word:

ccmbined_words.append(current_word) return combined_words

Рис. 4. Код для объединения слов.

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

Лемматизация - это процесс приведения слова к его нормальной (словарной) форме. В программировании лемматизация является важным инструментом для обработки текстовых данных на естественном языке. В Python существует несколько библиотек, которые позволяют осуществлять лемматизацию, выбрана библиотека «pymorphy2» класс MorphAnalyzer, используемый для морфологического анализа русских слов. Основная цель лемматизации заключается в унификации слова, чтобы различные формы одного слова считались одним и тем же термином, что позволяет упростить анализ текстов и снизить размерность данных [3].

Следующим шагом является токенизация, которая является методом разделения текста на фрагменты (предложения или слова). Применяется словарь WordNet, разработанный для обеспечения программного доступа системами обработки естественного языка и позволяет решать следующие задачи: нахождение определений слов, нахождение синонимов и антонимов, исследование отношений между словами схожести слов, анализ многозначности слов.

import nltk

from nltk.tokenize import wordjtokenize, sentjtokenize

from nltk.corpus import stopwords

import pymorphy2

nltk.download('punkt')

nltk.download(1stopword s']

morph = pymorphy2.MorpiiAnalyzer()

my_stop_words - ["ooo", "аиц", "проект", "заказчик", "ooo", "ости", "специализированный", "застройщик", "шифр", "аиц"] stop.words = set(stopwords.words("russian"))

sentences = [' 1 ,]oin([word for word in word_tokenize(sentence)]) for sentence in sent_tokenize(text)] newjvords - [word for word in word_tokenize(' 1.join(sentences)) if len(word) <■ 3] my_stop_words.extend(new.words)

alA_stop_words = stop_words,onion(set[ray_stop_words))

texts = [[morpii.parse[ivord)[0],normal_foriri for word in word_tokenize(sentence.lower()) if word.isalnumO and word not in aYl_stop.words] for sentence in sentences]

Рис. 5. Код для удаления шумовых слов, лемматизации и токенизации.

Описание процесса классификации документов.

Наивный байесовский классификатор (NB) является одним из самых популярных методов машинного обучения. В его основе лежит предположение о статистической независимости признаков, что ограничивает его применимость, однако NB зарекомендовал себя во многих прикладных областях, особенно, в классификации текстов. Для обучения модели необходимо вычислить средние значения каждого признака в каждом классе, отсюда следует, что вычислительная сложность алгоритма оптимизации параметров линейна по объему обучающей выборки и по числу признаков. Для качественной классификации необходимо грамотно создать обучающую выборку.

В процессе решения задачи классификации проектных документов использован наивный байесовский классификатор. Для решения задачи используется классификатор «NaiveBayesClassifier» из библиотеки «nltk».

Классификатор работает с перекодированными данными (обучающая выборка (train) составляет 75%, тестовая (test) - 25%), распределяет по двум категориям: пояснительные записки и основные документы (результат показан на рис. 6.)

Рис. 6. Результат классификации проектной документации.

Точность работы алгоритма варьируется от 69% до 75% (для определения используется функция accuracy из библиотеки nltk). Такой показатель можно считать средним и предсказуемым, так в разных разделах проектной документации часто встречаются одинаковые признаки. Основываясь на полученных результатах, можно сделать вывод, что данный классификатор следует использовать в практической деятельности, так как высокий уровень эффективности обуславливается относительной простотой применения алгоритма и приемлемыми показателями точности.

СПИСОК ЛИТЕРАТУРЫ:

1. Постановление Правительства Российской Федерации от 16.02.2008 №87. О составе разделов проектной документации и требованиях к их содержанию;

2. Ткаченко, А. Л. Решение задачи классификации документов вуза на основе методов интеллектуального анализа / А. Л. Ткаченко // Вестник кибернетики. -2021. - № 1(41). - С. 12-19;

3. Морфологический анализатор pymorphy [Электронный ресурс]. URL: https://pymorphy2.readthedocs.io/en/0.2/index.html (дата обращения: 18.05.24).

Konovalova E.A.

Saint Petersburg State University of Architecture and Civil Engineering

(Saint Petersburg, Russia)

CLASSIFICATION OF PROJECT DOCUMENTS IN CONSTRUCTION

USING INTELLIGENT ANALYSIS

Abstract: article addresses the task of text document classification in the construction industry. An algorithm for building a classification model using the Bayesian method is considered. The research was conducted using the Python programming language, with project documentation from various buildings and structures used as source data. Pre-processing of documents was carried out, classifying them into one of two classes: explanatory notes and other documents from the design stage P.

Keywords: text classification, text preprocessing, machine learning, construction, project documentation.

i Надоели баннеры? Вы всегда можете отключить рекламу.