Курсовая работа: Проектирование и разработка интеллектуальной информационной системы (экспертной системы для магазина электроники)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рисунок 3.7. Негативный результат работы приложения

ЗАКЛЮЧЕНИЕ

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

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. «Искусственный интеллект в розничной торговле» - сайт - URL: https://cloudmakers.ru/iskusstvennyj-intellekt-v-roznichnaya-torgovli/

2. «Среда разработки Pycharm» - сайт - URL: https://www.jetbrains.com/ru-ru/pycharm/features/

3. «The Python tutorial» - сайт - URL: https://docs.python.org/3/tutorial/index.html

4. Бхаргава, А. Грокаем алгоритмы[Текст]: учебное пособие

ПРИЛОЖЕНИЯ

class Qest:

def __init__(self, choices=['Y', 'N']):

self.choices = choices

def qest(self):

if max([len(a) for a in self.choices]) > 3:

for i, a in enumerate(self.choices):

print("{0}. {1}".format(i, a))

a = int(input())

return self.choices[a]

else:

print("/".join(self.choices))

return input()

rules = {

'default': Qest(['Y', 'N']),

'техника:iphone 14': If(['смартфон', 'производитель: US', 'диагональ: 5.5', 'ligtning']),

'техника:xiaomi 12': If(['смартфон', 'производитель: CN', 'диагональ: 6.5', 'type c']),

'техника:google pixel 6': If(['смартфон', 'производитель: US', 'диагональ: 6', 'type c']),

'техника:ipad pro': If(['планшет', 'производитель: US', 'диагональ: 10', 'ligtning']),

'техника:ipad 2020': If(['планшет', 'производитель: US', 'диагональ: 10.5', 'ligtning']),

'техника:google pixel 5a': If(['смартфон', 'производитель: US', 'диагональ: 5.5', 'type c']),

'техника:hp spectre': If(['ноутбук', 'type c', 'производитель: CN', 'диагональ: 15']),

'техника:macbook pro 13': If(['ноутбук', 'type c', 'производитель: US', 'диагональ: 13']),

'техника:macbook pro 15': If(['ноутбук', 'type c', 'производитель: US', 'диагональ: 15']),

'техника:msi stealth 15m': If(['ноутбук', 'разъём: другое', 'производитель: CN', 'диагональ: 16']),

'техника:thunderobot ': If(['ноутбук', 'разъём: другое', 'производитель: PRC', 'диагональ: 16']),

'техника:iphone 15 pro max': If(['смартфон', 'производитель: US', 'диагональ: 6', 'ligtning']),

'техника:bq 5565': If(['смартфон', 'производитель: PRC', 'диагональ: 6', 'micro usb']),

'техника:poco c51': If(['смартфон', 'производитель: PRC', 'диагональ: 5.5', 'micro usb']),

}

class KnowledgeEngine:

def __init__(self, rules):

self.rules = rules

self.memory = {}

def get(self, name):

if name in self.memory.keys():

return self.memory[name]

for fld in self.rules.keys():

if fld == name or fld.startswith(name + ":"):

value = 'y' if fld == name else fld.split(':')[1]

res = self.calc(self.rules[fld], field=name)

if res == 'y':

self.memory[name] = value

return value

res = self.calc(self.rules['default'], field=name)

self.memory[name] = res

return res

def calc(self, expr, field=None):

if isinstance(expr, Qest):

print(field)

return expr.qest()

elif isinstance(expr, If):

return self.calc(expr.x)

elif isinstance(expr, AND) or isinstance(expr, list):

expr = expr.x if isinstance(expr, AND) else expr

for x in expr:

if self.calc(x) == 'n':

return 'n'

return 'y'

elif isinstance(expr, OR):

for x in expr.x:

if self.calc(x) == 'y':

return 'y'

return 'y'

elif isinstance(expr, str):

return self.get(expr)

else:

print("Неизвестное выражение: {}".format(expr))

ke = KnowledgeEngine(rules)

ke.get('техника')

Источник: https://otherreferats.allbest.ru/download/1481474/