Разработка системы классификации тендеров с использованием искусственной нейронной сети
Анализ предметной области. Технологии классификации текстовых данных. Диаграмма прецедентов системы определения категорий тендеров. Проектирование архитектуры системы определения категорий тендеров. Формирование обучающих выборок для нейронной сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 28.11.2019 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Токенизация - разбиение текста на более мелкие части - слова, знаки пунктуации.
Мешок слов - модель текстов, в виде массива или матрицы, где каждое место соответствует определенному слову.
Стоп-слова - слова, символы или знаки, не несущие самостоятельно смысловой нагрузки. Обычно удаляются из текстов перед их анализом.
ОКПД 2 -- Общероссийский классификатор продукции по видам экономической деятельности.
Парсер - инструмент (программа), для извлечения открытой информации с веб-сайтов.
Парсинг - процесс сбора информации с веб-сайтов.
Библиографический список
1. Ясницкий Л.Н. Интеллектуальные системы. - М.: Лаборатория знаний, 2016. - 221 с.
2. Ясницкий Л.Н. Введение в искусственный интеллект. М.: Издательский центр «Академия», 2005. - 176с.
3. Шитиков В. К., Мастицкий С. Э. Классификация, регрессия, алгоритмы Data Mining с использованием R. - Электронная книга, 2017
Приложение
Листинг программы
Загрузка и подготовка текста
import json
import pymorphy2
from src.tender import Tender
import nltk
from nltk.corpus import stopwords
from keras.preprocessing.text import text_to_word_sequence, Tokenizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import HashingVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
nltk.download('stopwords')
stop_words = stopwords.words('russian')
stop_words.extend(['что', 'это', 'так', 'вот', 'быть', 'как', 'в', '--', '-', 'к', 'на', '...', ':', ')', '(',
'тендер', 'закупка', 'извещение', 'адрес', 'цена', 'аукцион', 'конкурс', 'открытый', 'закрытый'])
def category_load(file):
print('load subcategory')
file_data = []
with open(file, "r", encoding='utf-8') as read_file:
data = json.load(read_file)
for item in data:
file_data.append(item['id'])
return file_data
# slow
def normalize_text(text):
print("normalize_text run")
result = []
morph = pymorphy2.MorphAnalyzer()
for sen in text:
new_sen = ' '
word_tokens = sen.split()
word_tokens = [w for w in word_tokens if w not in stop_words]
new_sen = new_sen.join([morph.parse(word)[0].normal_form for word in word_tokens])
result.append(new_sen)
return result
# fast
def make_all_text(data: list) -> list:
print("make_all_text run")
result = []
for item in data:
result.append(item.name)
# result.append(item.subject)
return result
def fit_text(vectorezer, text):
vectorezer.fit(text)
return vectorezer
def bow_tfidf(text):
vectorizer = TfidfVectorizer()
return fit_text(vectorizer, text)
def bow_counter(text):
vectorizer = CountVectorizer()
return fit_text(vectorizer, text)
def bow_hashing(text):
vectorizer = HashingVectorizer(n_features=20)
return fit_text(vectorizer, text)
def load_data(file):
print("load_data run " + file)
file_data = []
with open(file, "r", encoding='utf-8') as read_file:
data = json.load(read_file)
for item in data:
tender = Tender(item)
file_data.append(tender)
return file_data
def nn_logic_regression(X_train, y_train, X_test, y_test):
logreg = LogisticRegression()
logreg.fit(X_train, y_train)
print('Accuracy of Logistic regression classifier on training set: {:.2f}'
.format(logreg.score(X_train, y_train)))
print('Accuracy of Logistic regression classifier on test set: {:.2f}'
.format(logreg.score(X_test, y_test)))
def nn_decision_tree_classifier(X_train, y_train, X_test, y_test):
clf = DecisionTreeClassifier().fit(X_train, y_train)
print('Accuracy of Decision Tree classifier on training set: {:.2f}'
.format(clf.score(X_train, y_train)))
print('Accuracy of Decision Tree classifier on test set: {:.2f}'
.format(clf.score(X_test, y_test)))
def nn_k_neighbors_classifier(X_train, y_train, X_test, y_test):
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
print('Accuracy of K-NN classifier on training set: {:.2f}'
.format(knn.score(X_train, y_train)))
print('Accuracy of K-NN classifier on test set: {:.2f}'
.format(knn.score(X_test, y_test)))
def nn_d_linear_discriminant_analysis(X_train, y_train, X_test, y_test):
lda = LinearDiscriminantAnalysis()
lda.fit(X_train, y_train)
print('Accuracy of LDA classifier on training set: {:.2f}'
.format(lda.score(X_train, y_train)))
print('Accuracy of LDA classifier on test set: {:.2f}'
.format(lda.score(X_test, y_test)))
Точка входа
from src.my_functions import *
import numpy
file_name = '../data.json'
file_test_name = '../data_test.json'
sub_cats_file = '../sub_cats.json'
test_file = '../data_2.json'
test_file_3 = '../data_3.json'
train_data = load_data(test_file)
test_data = load_data(test_file_3)
subcats = category_load(sub_cats_file)
text = make_all_text(train_data)
text = normalize_text(text)
tokenizer = bow_tfidf(text)
subcats_tokinizer = bow_counter(subcats)
train_x = []
train_y = []
for item in train_data:
_x = tokenizer.transform(normalize_text([item.name])).toarray()
new_array = []
for input_x in _x:
new_array.append(input_x)
new_array.append(item.price)
new_array.append(item.publication_month)
new_array.append(item.duration)
# new_array = numpy.append(_x, [item.price, item.publication_month, item.duration])
train_x.append(new_array)
_y = [[1] if x == item.category else [0] for x in subcats]
train_y = _y
test_x = []
test_y = []
for item in test_data:
_x = tokenizer.transform(normalize_text([item.name])).toarray()
new_array = numpy.append(_x, [item.price, item.publication_month, item.duration])
test_x.append(new_array)
_y = [[1] if x == item.category else [0] for x in subcats]
test_y = _y
a = nn_logic_regression(train_x, train_y, test_x, test_y)
# print(tokenizer.vocabulary_)
# print(tokenizer.idf_)
# tokenizerHash = bow_hashing(text)
# tokenizerCounter = bow_counter(text)
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(10724, 1)),
tf.keras.layers.Dense(2438, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(303, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
Размещено на Allbest.ru
...Подобные документы
Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.
статья [245,7 K], добавлен 29.09.2008Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.
дипломная работа [2,0 M], добавлен 20.07.2015Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Проектирование экспертной системы выбора нейронной сети. Сущность семантических сетей и фреймов. MatLab и системы Фаззи-регулирования. Реализация программы с использованием пакета fuzzy logic toolbox системы MatLab 7. Составление продукционных правил.
курсовая работа [904,4 K], добавлен 17.03.2016Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.
контрольная работа [229,5 K], добавлен 28.05.2010Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Определение прецедентов АИС "Автопарковка". Анализ предметной области. Первоначальная настройка системы администратором. Настройка БД и зеркалирования клиентской базы. Диаграмма последовательности системы. Модель проектирования информационной системы.
курсовая работа [605,8 K], добавлен 06.05.2015Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Оценка предметной области: концептуальные требования; выявление информационных объектов и связей между ними; построение базы данных. Описание входных и выходных данных информационной системы "Магазин компьютерной техники". Анализ диаграммы прецедентов.
курсовая работа [294,8 K], добавлен 13.04.2014Тендер: сущность, цели, виды, задачи, организация их проведения в сети Интернет. Организационно-экономический анализ деятельности Департамента cоциального развития Кировской области, анализ организации и порядок проведения тендера с участием Департамента.
курсовая работа [2,4 M], добавлен 18.09.2014Описание предметной области: работа с данными сети автосалонов. Структурная схема системы. Инфологическая модель: графическая диаграмма и спецификация. Связи между атрибутами сущности. Описание графа диалога системы. Формы входных и выходных сообщений.
курсовая работа [2,0 M], добавлен 21.10.2012Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013