bannerbanner
Искусственный интеллект. Строки, контекст и волны на Паскале
Искусственный интеллект. Строки, контекст и волны на Паскале

Полная версия

Искусственный интеллект. Строки, контекст и волны на Паскале

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
2 из 2

«Мы не научили компьютер понимать, что означает фраза „физик сэр Исаак Ньютон“, даже если мы можем построить поисковую систему, которая возвращает правдоподобные результаты пользователям, вводящим туда эту фразу…»

Еще раз уточним: задачей-минимумом нашего сегодняшнего исследования остается реализация диалоговой системы, близкой к человеческой модели мышления. И есть надежда, что технология MSM является принципиально новым подходом, способным дать нам новую пищу, иной способ исследования; вдохнуть новую жизнь в парадигму искусственного интеллекта как символьной системы, (но – не системы на естественном символьном языке).22

Глава 1. Строковые процедуры и функции на практике

Подготовка к работе в TMT-Pascal

Все, что нам первоначально потребуется для работы – скачать и установить программу компилятора TMT-Pascal.

Это можно сделать бесплатно, например, отсюда: http://pascal.sources.ru/tmt/download.htm.

Здесь можно выбрать, например, версию TMT Pascal Lite v.3.90, которая подходит для реализации наших задач.

Далее, для работы с русским языком в DOS-приложениях, нам понадобится произвести некоторые предварительные настройки. На 32-битной Windows:

В Windows XP:

В командной строке меню «Пуск» набираем команду «Regedit». Далее, вносим изменения: HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout

Здесь нужно изменить значение ключа 00000409 в папке DosKeybCodes на «ru».


Также, в файле autoexec. nt, расположенном в Windows\system32, надо добавить строку «lh %SystemRoot%\system32\kb16.com ru». После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Упомянутый метод нормально работает в том случае, если Language settings for the system в качестве Default стоит Cyrilic.

В Windows 7:

В файле Windows/sistem32/autoexec. nt вписать строки:

«lh %SystemRoot%system32dosx

lh %SystemRoot%system32kb16.com ru

set clipper=F80»

В файле Windows/sistem32/config. nt вписать:

«files=80; buffers=99».

В командной строке в меню «Пуск» через команду «rehgedit» редактируем реестр:

HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> Keyboard Layout

DosKeybCodes изменить значение параметра 0000409 на ru

Раскладка будет переключаться сочетаниями клавиш:

русский – правые Shift+Alt; английский – левые Shift+Alt.

В Windows 10:

Не требует изменений в реестре. В файле Windows/sistem32/autoexec. nt добавляем строчку – "%SystemRoot%/system32/kb16 ru».


В случае если используется 64-разрядный Windows, требуется использование приложения-эмулятора для DOS-программ «DOS-box».

Строковые данные

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

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

Итак, строчные переменные и константы в Паскале описываются так же, как и любые другие, например строка S: String означает что переменная S будет хранить некий набор символов, строку (в количестве от 1 до 255).23

Соответственно, декларация S: String [100] в блоке переменных обозначает, что переменная может хранить в себе последовательность элементов до 100 символов включительно. Декларировать количество символов может быть удобно, когда мы работаем с формализованными данными, например, с серией и номером документа с определенным числом символов. Но при этом следует учесть следующее: при попытке присвоения такой переменной более длинного ряда символов, не вошедшие символы будут «обрублены».

Например, описав переменную: S: String [8] следующая операция



даст в результате S=«Мама мыл» и соответственно, потерю оставшихся символов.

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

Длинные строки

В Паскале возможна работа с длинными строками,24 длина которых определяется не числовым значением первого байта строки, а замыкающим символом «#0». Ограничение в них определяется лишь объемом оперативной памяти или ее схемой адресации. Максимально возможная строка в таком случае ограничена числом в 65 535 символов; еще такие строки называют ASCIIZ-строками.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Примечания

1

В данном случае рассматривались десятки русскоязычных учебных пособий, самоучителей, методических рекомендаций и задачников по Паскалю, C++, Java и PHP, изданных за последние 20—25 лет.

2

Хотя современные наборы процедур и функций для работы со строками, например в PHP, Object Pascal и C++ довольно похвальны, (а в Python, – интуитивно удобны и компактны), но на практике очень редки сколько-нибудь интересные алгоритмы, использующие их где-то, кроме баз данных и текстовых процессоров. Мастодонты странного программирования, как Lisp и Prolog автором не рассматривались принципиально, – они напугали его еще в ранней юности.

3

Разработчик системы на основе ИНС далеко не всегда может отвечать за определенные решения программы и ему также сложно утверждать, не является ли определенный ответ эффектом «переобучения», иначе говоря, случайным, «мусорным» ответом.

4

Символический (символьный) искусственный интеллект – это собирательное название для всех методов исследования искусственного интеллекта, основанных на высокоуровневом «символическом» (человекочитаемом) представлении задач, логики и поиска. Символический ИИ лёг в основу доминирующей парадигмы исследований ИИ с середины 1950-х до конца 1980-х. Наиболее успешная форма символического ИИ – это экспертные системы, использующие сеть продукционных правил. Продукционные правила объединяют символы в отношения, похожие на оператор «если-то». Экспертная система, обрабатывая эти правила, делает логические выводы и определяет, какая дополнительная информация ей необходима, то есть какие следует задать вопросы, используя человекочитаемые символы. Определение Wiki.

5

Сильный искусственный интеллект – гипотеза в философии искусственного интеллекта, согласно которой некоторые формы искусственного интеллекта могут действительно обосновывать и решать проблемы. Теория сильного искусственного интеллекта предполагает, что компьютеры могут приобрести способность мыслить и осознавать себя как отдельную личность (в частности, понимать собственные мысли), хотя и не обязательно, что их мыслительный процесс будет подобен человеческому. Определение Wiki.

6

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

7

Blockchain (англ.) – технология распределенных баз данных для хранения информации на различных компьютерах в сети; преимущественно используется для хранения и передачи информации о финансовых транзакциях. Используется с 2008 года для работы с криптовалютами.

8

Перцептрон, или персептрон (англ. perceptron от лат. perceptio – восприятие; нем. Perzeptron) – кибернетическая модель мозга, предложенная Фрэнком Розенблаттом в 1957 году и впервые реализованная в виде электронной машины «Марк-1» в 1960 году. Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» – первым в мире нейрокомпьютером.

9

Пример с огурцами – не выдумка. Японец Макото Коике в 2016 году создал систему, которая с помощью технологии машинного обучения TensorFlow от Google сортирует огурцы на ферме своих пожилых родителей. Для этого Макото использовал одноплатный компьютер Raspberry Pi 3, оснащенный камерой. Непосредственной сортировкой в его системе был занят микроконтроллер Arduino, получающий команды после обработки в сенсорной сети TensorFlow и отправляющий огурцы в разные ведра.

10

Соболенко С. В. «Искусственный интеллект: начала MSM: Сингулярность неизбежна: Издательские решения, 2018. – 272 с.

11

MS-DOS Edition Version 3.90 (Copyright © 1995, 2002 by TMT Development Corporation).

12

Для сравнения, популярный в России ABC Pascal – не позволяет производить данные операции; а поздние версии Delphi и Object Pascal используют более сложный операционный инструментарий, чтобы сосредоточиться на нем на страницах небольшой по объему книги.

13

Однако, что более интересно, – реакция зарубежного форума OpenAI, где демонстрация проекта произвела сильное впечатление, вызвала интерес и получила явное одобрение. Прим. автора.

14

Курт Фридрих Гедель (нем. Kurt Friedrich Gödel; 1906—1978) – австрийский логик, математик и философ математики. Наиболее известен сформулированными и доказанными им теоремами о неполноте, которые оказали огромное влияние на представление об основаниях математики. Считается одним из наиболее выдающихся мыслителей XX века.

15

Сэр Роджер Пенроуз (англ. Roger Penrose, род. 8.08.1931 года, г. Колчестер, Англия) – английский физик и математик, работающий в различных областях математики, общей теории относительности и квантовой теории.

16

Объектно-ориентированное программирование (ООП) – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. Определение Wiki.

17

«Роджер Пенроуз: Квантовая природа сознания», видео канала «2045 Initiative», 2013 г., на 3 мин. 19 сек.

18

Роджер Пенроуз «Тени разума – в поисках науки о сознании», М. 2005. с. 27—28.

19

См. там же.

20

Аврам Ноам (Наум) Хомски (также часто транскрибируется как Хомский или Чомски, англ. Avram Noam Chomsky; род. 7 декабря 1928, Филадельфия, штат Пенсильвания, США) – американский лингвист, политический публицист, философ и теоретик. Профессор лингвистики Массачусетского технологического института. Также он известен своей открытой позицией относительно связи мышления, языка и интеллекта.

21

Автор статьи – молодой ученый-когнитивист Ярден Кац. Ссылка на публикацию: https://habr.com/ru/post/432846/

22

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

23

По существу, строка является массивом символьных переменных типа Char, описываемого по умолчанию как содержимое [1..255], вызов к индексу которого аналогичен операции с традиционным массивом (array). При этом, нулевой индекс [0] содержит информацию о текущей длине массива символов.

24

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

Конец ознакомительного фрагмента
Купить и скачать всю книгу
На страницу:
2 из 2