AI: БД – скорость, объем и хостинг
Для того, чтоб машина могла думать, составлять правильно (грамотно и логично) и красиво (стиллизованно) предложения, помимо того, что адекватно (в тему) отвечать, ей нужен "кругозор", т.е. база данных (БД). Ведь, если человек не знает слов, например, строительных слов (ригель - балка), то как человек сможет поддерживать разговор и тем более его вести? - робот аналогично, AI даже не сможет определить тему разговора и время - будущее, прошлое или настоящее.
Так, словарь Яндекса насчитывает более 200.000 слов (не известно, входят ли туда словоформы, аббревиатуры, спец. слова и символы, а также склонения , спряжения, составляющие слова, как желто-зеленый, или нет). Словарь Гугла составляет более 2.000.000 слов, фраз и выражений.
Как же составить такую гигантскую БД? - одному человеку, да даже сотне человек это просто не под силу, на такую работу уйдут годы, а то и десятилетия... Но в принципе, этот вопрос решаем весьма просто и незатейливо: можно создать своего паука-робота, который бы сканировал интернет на наличие этих самых слов, фраз и выражений, а затем каждому присваивал свой айди (id) - порядковый номер и заносил данное неизвестное слово ("единицу") в свою супер-мега-огромную базу.
По предварительным подсчетам, такая база может весить много, но не так много, чтобы ее реализация была не возможной, - примерно, 150-250 мб, в то время, как у простого новостного сайта (относительного крупного) в среднем 10-20 мб. Кто-то скажет, что БД очень большая? - нет, это не совсем так, да и проблем с выбором хостинга быть не должно, ведь современный хостинг предоставляет место вплодь до 100 Гб... Заказать 1Гб места не так уж и дорого стоит. Кто-то скажет, что БД слишком маленькая - тоже нет, ведь роботу не нужно кучу всяких навестных штучек-дрючек, типа дополнительных ненужных (нужных скорее для пользователей) статистик и прочих рюшек, по крайней мере для начала.
Но встает резко вопрос о быстродействии и загруженности сервера, ведь для AI придется создавать БД вплодь до 20-30 вложенностей. Это можно сравнить, например, с выводом категорий каталога или тем форума, но представьте, что у форума тысячи страниц, а категорий (тем) не более 100 в среднем, далее идут подтемы и т.д. Самый глубокий каталог может содержать вложенность 4-6 категорий, но для быстроты выбора советуют не более 3-5, иначе лучше создать поддомены или отдельные каталоги или темы на форуме. А у AI номинальная вложенность категорий достигает в среднем 20-30 и может достигать вплодь до 50-ти - это значительно скажется на быстродействии.
База данных (БД) и строковые данные.
Если БД создавать, например, на MySQL, то она имеет тип переменных varchar(n) и char(n). Если объявить поле для переменной char(10) и сохранить в нем значение "сайт" (4 символа), то 6 символов заполнятся пробелами, в то же время, если использовать varchar(10) и записать слово в 12 символов, то оно обрежется до 10. Лишние пробелы значительно раздувают нашу базу. Так, если строковых переменных мало - несколько сотен, то ничего страшного, но если мы планируем создать для AI свои словари данных, из которых он будет вычленять отдельные буквы, слоги, слова и фразы, а затем их обрабатывать и снова записывать в БД, то проблема очень даже актуальна на сегодняшний день. Ведь при словарном запасе 200.000 слов, БД AI может достигать колосальных размеров, а если к этим единицам AI БД (буквы, слова и т.д.) добавить еще и свойства, то количество переменных, вносимых в БД увеличится как минимум в 10-20 раз. А теперь представьте, что 30-35% базы составляют пробелы.
Чтобы избежать значительного увеличения БД AI, нужно создать для него (AI) массу блоков обработки - отдельные модули-обработчики, которые, например, вместо того, чтобы записывать в БД все склонения и спряжения слов, могли бы их производить за счет вычислительного модуля без записи результатов в БД. Это позволит сократить запросы в БД и значительно съэкономить ее объем, что непременно скажется на производительности AI в целом.
Также нужно наиболее тщательным образом продумать структурированность БД и ее вложенность, что также поспособствует простоте кода и скорости записи и считывания информации из БД. Некоторые проблемы с деревьями я нашел здесь:
К сожалению, я не программист (только начал изучать php & MySQL) и мне не все понятно, как это реализовать на практике, поэтому, буду рад, если кто поделится ссылками по этой проблеме, а также поможет мне разобраться с текущими проблемами до конца. Самые интересные ссылки (любые по теме) я добавлю в этот список.
Другие статьи по теме seo (оптимизация), монетизации и раскрутке:
Комментариев: Комментарии (3)
Опубликованно: Среда, Июнь 3rd, 2009 в 16:22
Обновлено: 4 Июнь 2009 в 18:51.
Директории: AI (ИИ)
Автор: admin, все авторы.
В статье: 687 слов. Ссылки на странице.
Понравилась статья? - Не пропустите следующую, подпишитесь на RSS-канал[],
Также Вы можете оставить комментарий, или на Вашем сайте.
Эту статью находят по поисковым запросам:





Метки статьи:



463768885,
zgr@bk.ru...























Август 17th, 2009 Комментариев: 2
Цитировать
>словарь Яндекса насчитывает более 200.000 слов
Словарь Пушкина порядка 20000 слов. Непонятно, зачем такая огромная база?
Август 17th, 2009 Комментариев: 77
Цитировать
Вообще-то, судя по данным статистики лингвистов (ссылку дать не могу – не помню, где вычитал), А.С.Пушкин за всю свою жизнь употребил в своем творчестве примерно 15 000 слов, простой русскоговорящий человек употребляет в речи порядка 7-8 000 слов, англоязычный – 5 000 слов.
Могу предположить, что такой большой словарь (хотя как посмотреть, ведь есть не только толковый словарь, но и очень много других – специализированные, например) создан потому, что машина – штука тупая, для нее «блог», «блоги», «блогам» и т.д. слова разные. Хотя, может, дело не только в суффиксах и аффиксах и прочих штуках…
Август 18th, 2009 Комментариев: 2
Цитировать
Ну вот видите – у Пушкина даже меньше 20000 слов. «Блог», «блоги», «блогам» – Яндекс приводит слова каждого сайта к некой «стандартной» форме, т.е. например, существительные к именительному падежу и т.п. – то есть падежи и спряжения даже сейчас не проблема. А это аргумент, что словарь не должен быть большим.
Специализированные словари содержат преимущественно редко используемые среднестатистическим человеком слова. То есть «понимание» при общении со «средним» человеком увеличится ненамного, даже если использовать их.
Что касается «интеллектуальности» компьютеров, в своем блоге я опубликовал заметку на эту тему: