Функциональное программирование (практикум, Д.В. Михайлов)
Материал из MachineLearning.
 (→Комментарии и дополнения к лабораторным работам)  | 
				 (→Демо)  | 
			||
| (46 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
| - | Приводятся общие сведения и рекомендации по решению задач нечислового характера с применением функциональных языков на примере   | + | Приводятся общие сведения и рекомендации по решению задач нечислового характера с применением функциональных языков на примере известных реализаций языка  | 
Лисп для персональных ЭВМ.   | Лисп для персональных ЭВМ.   | ||
Содержатся типовые задания, позволяющие приобрести навыки написания и отладки функциональных программ при построении интеллектуальных систем различного назначения.  | Содержатся типовые задания, позволяющие приобрести навыки написания и отладки функциональных программ при построении интеллектуальных систем различного назначения.  | ||
| - | Практикум предназначен для студентов специальности 230105   | + | Практикум предназначен для студентов специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем», а также других, в учебных планах которых предусмотрены аналогичные дисциплины.  | 
| - | Автор практикума — [[Участник:Dmitry.Mikhaylov|Дмитрий Владимирович Михайлов]]  | + | Автор практикума — [[Участник:Dmitry.Mikhaylov|Дмитрий Владимирович Михайлов]],   | 
| - | + | кафедра Информационных технологий и систем [http://www.novsu.ru Новгородского государственного университета им. Ярослава Мудрого (НовГУ)].  | |
| - | Научный консультант   | + | Научный консультант — д.т.н., профессор Емельянов Геннадий Мартинович  | 
| - | + | Представленный здесь вариант практикума в 2020 году лёг в основу учебного модуля «Функциональное и логическое программирование» по направлению подготовки «Информатика и вычислительная техника» (бакалавриат) в НовГУ. Актуальная редакция материалов учебного модуля представлена на портале [https://do.novsu.ru/ «Дистанционные образовательные технологии обучения в НовГУ»] (требуется регистрация). Смотри также [[:Логическое программирование (практикум, Д.В.Михайлов)|''Лабораторный практикум по логическому программированию'']].  | |
[[Media:method_fp.pdf|Лабораторный практикум по функциональному программированию (PDF, 763КБ)]]  | [[Media:method_fp.pdf|Лабораторный практикум по функциональному программированию (PDF, 763КБ)]]  | ||
| Строка 64: | Строка 64: | ||
* [[Media:Lab6_lsp_2007.pdf|<!-- Лабораторная работа №6. --> Простейший пользовательский интерфейс. ]]  | * [[Media:Lab6_lsp_2007.pdf|<!-- Лабораторная работа №6. --> Простейший пользовательский интерфейс. ]]  | ||
| - | * [[Media:  | + | * [[Media:Lab7_lsp_2011_with_ref.pdf|<!-- Лабораторная работа №7. --> Работа с динамическими базами данных. ]]  | 
* [[Media:Lab8_lsp_2007.pdf|<!-- Лабораторная работа №9. --> Интерфейс на Естественном Языке к динамической базе данных. ]]  | * [[Media:Lab8_lsp_2007.pdf|<!-- Лабораторная работа №9. --> Интерфейс на Естественном Языке к динамической базе данных. ]]  | ||
| Строка 77: | Строка 77: | ||
* [[Media:demo_interface_newlisp.zip|Организация пользовательского интерфейса (newLISP-tk) . ]]  | * [[Media:demo_interface_newlisp.zip|Организация пользовательского интерфейса (newLISP-tk) . ]]  | ||
| + | |||
| + | * [http://www.novsu.ru/file/1488122 Выделение составляющих образа исходной фразы в виде ключевых слов и их сочетаний совместным использованием синтаксического разбора фразы и разбиения её слов на классы по значению меры TF-IDF (Python 2.7)]<ref name="recognition2019">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Стрещук В. А., Кузнецов П. А., Михайлов Д. В.  | ||
| + | |заглавие = [https://elibrary.ru/item.asp?id=38050033 Составляющие смыслового эталона, синтаксический анализ и классификация слов по значению меры TF-IDF]  | ||
| + | |ссылка   = http://www.swsu.ru/structura/up/fivt/kvt/recogn19.php  | ||
| + | |издание  = Распознавание-2019: сборник материалов XV Международной научно-технической конференции  | ||
| + | |место         = Курск  | ||
| + | |издательство  = Юго-Западный государственный университет  | ||
| + | |год      = 2019  | ||
| + | |страницы = 167–169  | ||
| + | }}  | ||
| + | </ref>.  | ||
| + | |||
| + | * [http://www.novsu.ru/file/1493710 Отбор научных статей по степени близости смысловому эталону заголовка и фраз аннотации (Python 2.7)]<ref name="jphys2019">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.  | ||
| + | |заглавие = [https://iopscience.iop.org/article/10.1088/1742-6596/1352/1/012034/pdf Selection of scientific articles according to the degree of proximity to the semantic pattern of the title and phrases of the abstract]  | ||
| + | |ссылка   = https://iopscience.iop.org/journal/1742-6596  | ||
| + | |издание  = Journal of Physics: Conference Series  | ||
| + | |год      = 2019  | ||
| + | |том      = 1352  | ||
| + | |страницы = 012034  | ||
| + | }}  | ||
| + | </ref>, в том числе:  | ||
| + | ** [http://www.novsu.ru/file/1504831 вариант с сортировкой анализируемых фраз по степени близости эталону и выделением ключевых сочетаний слов на основе меры TF-IDF]<ref name="pria2019">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://link.springer.com/content/pdf/10.1134%2FS1054661819040114.pdf Estimation of the closeness to a semantic pattern of a topical text without construction of periphrases]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2019  | ||
| + | |том      = 29  | ||
| + | |номер    = 4  | ||
| + | |страницы = 647–653  | ||
| + | }}  | ||
| + | </ref>, включая [http://www.novsu.ru/file/1580901 построение иерархии статей на основе оценок взаимной смысловой зависимости по аннотациям и заголовкам с учётом найденных ключевых сочетаний слов]<ref name="pria2020">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://link.springer.com/content/pdf/10.1134/S1054661820030207.pdf Hierarchization of topical texts based on the estimate of proximity to the semantic pattern without paraphrasing]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2020  | ||
| + | |том      = 30  | ||
| + | |номер    = 3  | ||
| + | |страницы = 440–449  | ||
| + | }}  | ||
| + | </ref>;  | ||
| + | ** [http://www.novsu.ru/file/1688839 вариант с построением иерархии статей на основе оценок их взаимной смысловой зависимости и последующим оцениванием взаимной близости документов тематического корпуса, относительно которых достигалась наибольшая близость фраз эталону]<ref name="pria2021">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://link.springer.com/content/pdf/10.1134/S1054661821030172.pdf Analysis of the Mutual Relevance of Topical Corpus Documents in the Problem of Assessing the Proximity of Text to the Semantic Standard]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2021  | ||
| + | |том      = 31  | ||
| + | |номер    = 3  | ||
| + | |страницы = 588–594  | ||
| + | }}  | ||
| + | </ref>, а также [http://www.novsu.ru/file/1752845 численным оцениванием значимости каждого такого документа при подборе пары взаимно релевантных]<ref name="jphys2021">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.  | ||
| + | |заглавие = [https://iopscience.iop.org/article/10.1088/1742-6596/2052/1/012027/pdf Ranking of documents of topical corpus according to their mutual relevance in the problem of estimating of affinity of a text to the sense standard]  | ||
| + | |ссылка   = https://iopscience.iop.org/journal/1742-6596  | ||
| + | |издание  = Journal of Physics: Conference Series  | ||
| + | |год      = 2021  | ||
| + | |том      = 2052  | ||
| + | |страницы = 012027  | ||
| + | }}  | ||
| + | </ref>.  | ||
| + | |||
| + | * [http://www.novsu.ru/file/1859320 Анализ документов тематического корпуса на предмет включения в состав референтного на основе встречаемости слов из аннотаций статей по заданной предметной области (реализация на Python 2.7)]<ref name="pria2022">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://rdcu.be/c2iQS Reference-Corpus Formation for Estimating the Closeness of Topical Texts to the Semantic Standard]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2022  | ||
| + | |том      = 32  | ||
| + | |номер    = 4  | ||
| + | |страницы = 755–762  | ||
| + | }}  | ||
| + | </ref>, а также [https://portal.novsu.ru/file/1953485 оценивание качества отбора документов в референтный корпус (реализация на Python 2.7 и (частично) на Python 3.10)]<ref name="pria2023">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://link.springer.com/article/10.1134/S1054661823030288 Estimating the Quality of a Selection of Scientific PapersUsing a Collection of Short Texts]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2023  | ||
| + | |том      = 33  | ||
| + | |номер    = 3  | ||
| + | |страницы = 568–575  | ||
| + | }}  | ||
| + | </ref>.  | ||
| + | |||
| + | * [https://portal.novsu.ru/file/1962982 Применение нейросетевых моделей BERT для оценки смысловой близости рефератов научных статей (реализация на Python 3.10 + блокнот Jupyter Notebook и результаты экспериментов)].  | ||
| + | |||
| + | * [https://portal.novsu.ru/file/1986783 Применение нейросетевых моделей BERT для ранжирования коротких текстов по близости эталону на основе оценки взаимного сходства их смыслов (реализация на Python 3.10 + блокнот Jupyter Notebook и результаты экспериментов)], в том числе [https://portal.novsu.ru/file/2123223 вариант с дообучением моделей ruSciBERT и SciRus-tiny для задач анализа смысловой близости отдельных предложений (Sentence Similarity) и текстов (Textual Similarity)]<ref name="pria2024">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://link.springer.com/article/10.1134/S1054661824700792?utm_source=rct_congratemailt&utm_medium=email&utm_campaign=nonoa_20241017&utm_content=10.1134%2FS1054661824700792 Neural Network Language Models, Mutual Sense Affinity, and Short Text Ranking According to Closeness to a Semantic Standard]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2024  | ||
| + | |том      = 34  | ||
| + | |номер    = 3  | ||
| + | |страницы = 385–395  | ||
| + | }}  | ||
| + | </ref>.  | ||
| + | |||
| + | * [https://portal.novsu.ru/file/2135027 Расширение аннотаций научных статей заданной коллекции предложениями их вводных и заключительных частей при взаимном ранжировании по близости смысловому эталону (реализация на Python 3.10 + блокноты Jupyter Notebook и результаты экспериментов)], в том числе [https://portal.novsu.ru/file/2171075 вариант с возможностью удаления предложений из аннотации с целью максимизации её смысловой связности].  | ||
| + | |||
| + | * [https://portal.novsu.ru/file/2161333 Расширение аннотаций научных статей предложениями их вводных и заключительных частей с максимизацией смысловой связности коллекции в целом (реализация на Python 3.10 — блокноты Jupyter Notebook и результаты экспериментов)], в том числе:  | ||
| + | ** [https://portal.novsu.ru/file/2166914 вариант без учёта и фиксации промежуточных шагов расширения исходной аннотации];  | ||
| + | ** [https://portal.novsu.ru/file/2199162 разные варианты расширения, языковая модель ''sci-rus-tiny'']<ref name="pria2025">  | ||
| + | {{биб.статья  | ||
| + | |автор    = Mikhaylov D. V., Emelyanov G. M.   | ||
| + | |заглавие = [https://rdcu.be/eLz92 Neural Network Language Modeling and Identification of Significant Fragments in Scientific Articles to Nonredundantly Transfer Their Meaning]  | ||
| + | |ссылка   = https://www.pleiades.online/ru/journal/patrec/  | ||
| + | |издание  = Pattern Recognition and Image Analysis  | ||
| + | |год      = 2025  | ||
| + | |том      = 35  | ||
| + | |номер    = 3  | ||
| + | |страницы = 547–557  | ||
| + | }}  | ||
| + | </ref>.  | ||
| + | |||
| + | * [https://portal.novsu.ru/file/2289124 Кластеризация многомерных векторов эмбеддингов для текстов «аннотация + заголовок» научных статей методом ''k''-means, оценка близости эталонному варианту передачи смысла и построение траектории навигации пользователя по подборке (реализация на Python 3.10 + блокнот Jupyter Notebook и результаты экспериментов)], в том числе [https://portal.novsu.ru/file/2333458 со сравнением различных методов кластеризации (помимо ''k''-means) применительно к эмбеддингам анализируемых текстов].  | ||
| + | |||
| + | == Полезные ссылки ==  | ||
| + | |||
| + | * [http://clisp.cons.org/ CLISP — an ANSI Common Lisp Implementation].  | ||
| + | |||
| + | * [http://newlisp.org newLISP — Home].  | ||
| + | |||
| + | * [[:Python|Введение в Python]].  | ||
| + | |||
| + | * [https://devpractice.ru/python-lessons/ Уроки по языку Python].  | ||
| + | |||
| + | * [https://www.python.org Python.org].  | ||
== Для самоконтроля ==  | == Для самоконтроля ==  | ||
| Строка 83: | Строка 223: | ||
* [[Media:Exam_tasks_fp_mdv.pdf|Типовые экзаменационные задачи. ]]  | * [[Media:Exam_tasks_fp_mdv.pdf|Типовые экзаменационные задачи. ]]  | ||
| + | |||
| + | == Примечания ==  | ||
| + | |||
| + | <references />  | ||
| + | |||
| + | ''К сожалению, незарегистрированные пользователи не видят литературных ссылок из раздела «Демо» (данный дефект системы находится в стадии проработки). Тем не менее, Вы можете найти цитируемый источник, используя вкладку «Просмотр» на данной странице''.  | ||
[[Категория:Учебные курсы]]  | [[Категория:Учебные курсы]]  | ||
[[Категория:Функциональное программирование]]  | [[Категория:Функциональное программирование]]  | ||
Текущая версия
Приводятся общие сведения и рекомендации по решению задач нечислового характера с применением функциональных языков на примере известных реализаций языка Лисп для персональных ЭВМ. Содержатся типовые задания, позволяющие приобрести навыки написания и отладки функциональных программ при построении интеллектуальных систем различного назначения.
Практикум предназначен для студентов специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем», а также других, в учебных планах которых предусмотрены аналогичные дисциплины.
Автор практикума — Дмитрий Владимирович Михайлов, кафедра Информационных технологий и систем Новгородского государственного университета им. Ярослава Мудрого (НовГУ).
Научный консультант — д.т.н., профессор Емельянов Геннадий Мартинович
Представленный здесь вариант практикума в 2020 году лёг в основу учебного модуля «Функциональное и логическое программирование» по направлению подготовки «Информатика и вычислительная техника» (бакалавриат) в НовГУ. Актуальная редакция материалов учебного модуля представлена на портале «Дистанционные образовательные технологии обучения в НовГУ» (требуется регистрация). Смотри также Лабораторный практикум по логическому программированию.
Лабораторный практикум по функциональному программированию (PDF, 763КБ)
Содержание | 
Установочные лекции
Комментарии и дополнения к лабораторным работам
Расчетно-графическая работа
Демо
- Выделение составляющих образа исходной фразы в виде ключевых слов и их сочетаний совместным использованием синтаксического разбора фразы и разбиения её слов на классы по значению меры TF-IDF (Python 2.7)[1].
 
-  Отбор научных статей по степени близости смысловому эталону заголовка и фраз аннотации (Python 2.7)[1], в том числе:
- вариант с сортировкой анализируемых фраз по степени близости эталону и выделением ключевых сочетаний слов на основе меры TF-IDF[1], включая построение иерархии статей на основе оценок взаимной смысловой зависимости по аннотациям и заголовкам с учётом найденных ключевых сочетаний слов[1];
 - вариант с построением иерархии статей на основе оценок их взаимной смысловой зависимости и последующим оцениванием взаимной близости документов тематического корпуса, относительно которых достигалась наибольшая близость фраз эталону[1], а также численным оцениванием значимости каждого такого документа при подборе пары взаимно релевантных[1].
 
 
- Анализ документов тематического корпуса на предмет включения в состав референтного на основе встречаемости слов из аннотаций статей по заданной предметной области (реализация на Python 2.7)[1], а также оценивание качества отбора документов в референтный корпус (реализация на Python 2.7 и (частично) на Python 3.10)[1].
 
- Применение нейросетевых моделей BERT для ранжирования коротких текстов по близости эталону на основе оценки взаимного сходства их смыслов (реализация на Python 3.10 + блокнот Jupyter Notebook и результаты экспериментов), в том числе вариант с дообучением моделей ruSciBERT и SciRus-tiny для задач анализа смысловой близости отдельных предложений (Sentence Similarity) и текстов (Textual Similarity)[1].
 
- Расширение аннотаций научных статей заданной коллекции предложениями их вводных и заключительных частей при взаимном ранжировании по близости смысловому эталону (реализация на Python 3.10 + блокноты Jupyter Notebook и результаты экспериментов), в том числе вариант с возможностью удаления предложений из аннотации с целью максимизации её смысловой связности.
 
- Кластеризация многомерных векторов эмбеддингов для текстов «аннотация + заголовок» научных статей методом k-means, оценка близости эталонному варианту передачи смысла и построение траектории навигации пользователя по подборке (реализация на Python 3.10 + блокнот Jupyter Notebook и результаты экспериментов), в том числе со сравнением различных методов кластеризации (помимо k-means) применительно к эмбеддингам анализируемых текстов.
 
Полезные ссылки
Для самоконтроля
Примечания
К сожалению, незарегистрированные пользователи не видят литературных ссылок из раздела «Демо» (данный дефект системы находится в стадии проработки). Тем не менее, Вы можете найти цитируемый источник, используя вкладку «Просмотр» на данной странице.

