Функциональное программирование (практикум, Д.В. Михайлов)
Материал из MachineLearning.
(→Комментарии и дополнения к лабораторным работам) |
(→Демо) |
||
(38 промежуточных версий не показаны.) | |||
Строка 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://trebuchet.public.springernature.app/get_content/6f6138ae-d21e-445c-bc5e-b455276c82b1 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)]. | ||
+ | |||
+ | * [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 вариант без учёта и фиксации промежуточных шагов расширения исходной аннотации]. | ||
+ | |||
+ | == Полезные ссылки == | ||
+ | |||
+ | * [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: | Строка 197: | ||
* [[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).
- Расширение аннотаций научных статей заданной коллекции предложениями их вводных и заключительных частей при взаимном ранжировании по близости смысловому эталону (реализация на Python 3.10 + блокноты Jupyter Notebook и результаты экспериментов), в том числе вариант с возможностью удаления предложений из аннотации с целью максимизации её смысловой связности.
- Расширение аннотаций научных статей предложениями их вводных и заключительных частей с максимизацией смысловой связности коллекции в целом (реализация на Python 3.10 — блокноты Jupyter Notebook и результаты экспериментов), в том числе вариант без учёта и фиксации промежуточных шагов расширения исходной аннотации.
Полезные ссылки
Для самоконтроля
Примечания
К сожалению, незарегистрированные пользователи не видят литературных ссылок из раздела «Демо» (данный дефект системы находится в стадии проработки). Тем не менее, Вы можете найти цитируемый источник, используя вкладку «Просмотр» на данной странице.