Введение 3
1. Анализ предметной области 5
1.1 Изучение предметной области машинного обучения и метода
рекуррентных нейронных сетей 5
1.2 Анализ существующих подходов к автоматическому исправлению
грамматических ошибок 8
2. Концептуальные основы машинного обучения методом рекуррентных
нейронных сетей 12
2.1 Нейронные сети 12
2.2 Формальное описание метода 14
3. Экспериментальная реализация алгоритма 17
3.1 Технологии для реализации метода рекуррентных нейронных сетей 17
3.2 Обучающее и тестовое множества 17
3.3 Этап машинного обучения 22
4. Тестирование по результатам обучения 27
4.1 Экспериментальная оценка результатов обучения 27
4.2 Целевой оценочный тест реализации алгоритма 31
Список использованных источников 34
Язык лежит в основе культуры человека, он необходим нашему обществу и выполняет функции коммуникации, когнитивности и аккумулятивности. Так же важна и письменная речь, с помощью которой мы общаемся, передаем и получаем знания, обеспечиваем взаимопонимание в обществе и развитие индивида и человечества в целом. В современном цифровом веке количество письменной информации растет с неимоверной скоростью. Однако является естественным, при формулировке мыслей человеком допускаются ошибки. Они могут быть незначительными опечатками (орфографические ошибки), но возможны и более серьезные недочеты, искажающие смысл текста. Это и приводит к актуальности проблемы автоматизации поиска и исправления грамматических ошибок.
Без сомнения на данный момент существует большое количество готовых решений, таких как LanguageTool и ОРФО. Некоторые из них с самого начала существования ориентировались на русский язык, некоторые модифицированы для работы с ним, однако ни одна система не будет представлять идеальный результат. В упомянутых сервисах имеются проблемы, связанные с границами предложений, недостаточный словарь, некоторая путаница с прилагательными и не предназначенность для научного стиля речи в силу многочисленных терминов и неологизмов. При этом нельзя отрицать, что они достигли высоких достижений.
Данные результаты в области обработки естественного языка получены методами машинного обучения, в частности рекуррентные нейронными сетями. Популярные в настоящее время, рекуррентные нейронные сети отличаются от других подходов тем, что могут использовать информацию, обработанную на предыдущих шагах. С помощью этого рекуррентные нейронные сети смогут решить некоторые проблемы, встреченные у рассмотренных сервисов, например, связанные с границами предложений. Они уже показали более успешные по сравнению с альтернативными
подходами результаты в таких задачах, как распознавание речи, компьютерное зрение, машинный перевод и др.
Таким образом, актуальной является разработка системы исправления грамматических ошибок с использованием такой технологии машинного обучения, как рекуррентные нейронные сети.
Цель данной работы — исследовать возможность реализации алгоритма, направленного на поиск и исправление грамматических ошибок в тексте, при помощи методов машинного обучения, а именно с использованием рекуррентные нейронные сети.
Для этого необходимо решить данные задачи:
• провести анализ существующих на данный момент решений проблемы автоматической коррекции грамматических ошибок и метода рекуррентных нейронных сетей
• провести поиск существующих технологий и библиотек для реализации рекуррентных нейронных сетей, выбрать подходящую
• подготовить обучающий и тестовый набор текстов с грамматическими ошибками и без для работы выбранной технологии
• провести обучение на полученных текстах и провести эксперименты с тестовыми данными для выявления качества алгоритма
Информация всегда играла большую роль как в жизни отдельных людей, так и общества в целом. Любой аспект современного мира опирается на большие объемы информации. Люди в современной мире зависят от наличия достоверных данных, способных помочь в проблемах и передающих им знания. Большинство информации в наш цифровой век передается, хранится и представляется письменно. Это влечет за собой неизбежные ошибки, способные повлиять на смысл текста.
В ходе работы были изучены существующие подходы к исправлению грамматических ошибок и инструменты для их реализации. Были выявлены недостатки и особенности используемых для задачи решений. После исследования и выбора подходящего метода, которым стало обучение последовательность к последовательности, были подготовлены обучающее и тестовое множества на основе романов художественной литературы объемом 30 000 предложений. С их помощью успешно было произведено обучение рекуррентных нейронных сетей с использованием LSTM-модулей на основе инструмента keras для языка программирования Python.
В результате был получен алгоритм автоматического исправления грамматических ошибок. Система показывает точность в 74%, тем не менее было замечено, что алгоритм не справляется с предложениями, длиной более 80 символов. Это связано с большим объемом данным, обрабатываемым сетью при работе с каждым словом.
Для решения этой проблемы в дальнейшем процессе работы над рассматриваемой задачей можно использовать механизм внимания, который помогает нейронной сети рассматривать предложение не целиком, а фокусироваться только на важных для текущего токена элементах.
1. Горбань А.Н. Обучение нейронных сетей / А.Н. Горбань. — М. : СП ПараГраф, 1990. — 160 с.
2. Созыкин А.В. Обзор методов обучения глубоких нейронных сетей / А.В. Созыкин. — Вестник Южно-Уральского государственного университета. Серия: Вычислительная математика и информатика, №3. — Челябинск: Издательство ЮУрГУ, 2017. — с. 28-59.
3. Britz D. Massive Exploration of Neural Machine Translation Architectures/ D. Britz, A. Goldie, M.T. Luong, Q. Le. — Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. — Copenhagen: Association for Computational Linguistics, 2017. — 1442-1451 pp.
4. Bryant C. Language Model Based Grammatical Error Correction without Annotated Training Data/ C. Bryant, T. Briscoe. — Proceedings of the Thirteenth Workshop on Innovative Use of NLP for Building Educational Applications. — New Orleans: Association for Computational Linguistics, 2018. — 247-253 pp.
5. Cho K. Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation /K. Cho, B. Merrienboer, C. Gulcehre, D. Bahdanau, F. Bougares, H. Schwenk, Y. Bengio. — Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). — Doha: Association for Computational Linguistics, 2014. — 1724-1734 pp.
6. Damerau F. J. A technique for computer detection and correction of spelling errors./ F. J. Damerau — Communications of the ACM vol. 7, no. 3. — New York: ACM, 1964. — 171-176 pp.
7. Greff K. LSTM: A Search Space Odyssey/ K. Greff, R. K. Srivastava, J. Koutnik, B.R. Steunebrink, J. Schmidhuber. — Transactions On Neurak Networks And Learning Systems, vol. 28, Issue: 10. — Piscataway: Institute of Electrical and Electronics Engineers, 2015. — p.73 .
8. Harris D. Digital design and computer architecture / D. Harris, S. Harris. — San Francisco, Calif.: Morgan Kaufmann., 2014. — p. 129.
9. Hebb D.O. The Organization of Behavior A Neuropsychological Theory/
D. O. Hebb — New York: Wiley. 1949. — 335 p.
10. Hochreiter S. Long Short-Term Memory / S. Hochreiter, J. Schmidhub. — Neural Computation, vol. 9, Issue: 8. — Massachusetts: Massachusetts Institute of Technology Press (MIT Press), 1997. — 1735-1780 pp.
11. Hopfield. J. J. Neural networks and physical systems with emergent collective computational abilities/ J. J. Hopfield. — Proceedings of National Academy of Sciences, vol. 79 no.8. — Washington, D.C: PNAS, 1982. — 2554— 2558 pp.
12. LeCun Y. Deep Learning / Y. LeCun, Y. Bengio, G. Hinton. — Nature, Vol. 521. — London: Macmillan Publishers Limited, 2015. — 436-444 pp.
13. McCulloch W.S. A Logical Calculus of the Ideas Immanent in Nervous Activity/ W. S. McCulloch, Pitts W. — The Bulletin of Mathematical Biophysics, vol. 5, no. 4. — Michigan: University of Michigan, 1943. — 115-133 pp.
14. Mikolov T. Distributed Representations of Words and Phrasesand their Compositionality/ T. Mikolov, I. Sutskever, K. Chen. — Proceeding NIPS'13 Proceedings of the 26th International Conference on Neural Information Processing System. — Volume 2 Lake Tahoe. — Nevada: Association for Computational Linguistics, 2013. — 3111-3119 pp.
15. Neubig G. Neural Machine Translation and Sequence-to-sequence Models: A Tutorial/ G. Neubig. — Language Technologies Institute, Carnegie Mellon University. — Pittsburgh: ArXiv, 2017. — p.65.
16. Omer L. Improving Distributional Similarity with Lessons Learned from Word Embeddings/ L. Omer, Y. Goldberg, I. Dagan - Transactions of the Association for Computational Linguistics, vol. 3. - Ramat-Gan: Association for Computational Linguistics 2015. — 211-225 pp.
17. Schmaltz A. Sentence-Level Grammatical Error Identifications Sequence- to-Sequence Correction/ A. Schmaltz, Y. Kim, A. M. Rush, S. M. Shieber. — Proceedings of the 11th Workshop on Innovative Use of NLP for Building
Educational Applications. — San Diego: Association for Computational Linguistics, 2016. — 242-251 pp.
18. Sutskever I. Sequence to sequence learning with neural networks/ I. Sutskever, O. Vinyal, Q.V Le. — Advances in Neural Information Processing Systems 27. — Massachusetts: MIT Press Cambridge, 2014. —3104-3112 pp.
19. Weiss G. On the Practical Computational Power of Finite Precision RNNs for Language Recognition/ G. Weiss, Y. Goldberg, E. Yahav. — Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Short Papers). — Melbourne: Association for Computational Linguistics, 2018. — 740745 pp.
20. Xie Z. Neural Language Correction with Character-Based Attention/ Z. Xie, A. Avati, N. Arivazhagan, D. Jurafsky, A. Y. Ng. — Computer Science Department, Stanford University. — Stanford: Stanford University Press, 2016. — p.756.
21. Проверка орфографии, проверка грамматики, проверка правописания [Электронный ресурс]/ online.orfo.ru . — Проверка орфографии, проверка грамматики, проверка правописания. — Режим доступа: http://online.orfo.ru . — Дата обращения: 01.12.2018.
22. Руководство пользователя — Морфологический анализатор
pymorphy2 [Электронный ресурс]/ pymorphy2.readthedocs.io — Морфологический анализатор pymorphy2. — Морфологический анализатор pymorphy2. — Режим доступа:
https://pymorphy2.readthedocs.io/en/latest/user/guide.html .— Дата обращения:
10.02.2019.
23. About Keras layers - Keras Documentation [Электронный ресурс]/
keras.io . — Home - Keras Documentation . — Режим доступа:
https://keras.io/layers/about-keras-layers/— Дата обращения: 10.04.2019.
24. Grammar Parsing [Электронный ресурс]/ nltk.org. - Natural Language
Toolkit — NLTK 3.4.3 documentation . — Режим доступа:
http://www.nltk.org/howto/grammar.html . — Дата обращения: 10.02.2019.
25. LanguageTool - Spell and Grammar Checker [Электронный ресурс]/ languagetool.org — LanguageTool - Spell and Grammar Checker — Режим доступа: https://languagetool.org/ . — Дата обращения: 01.12.2018.
26. Neural Machine Translation with Attention | TensorFlow Core 2.0b | TensorFlow [Электронный ресурс]/ tensorflow.org. — TensorFlow . — Режим доступа: https://www.tensorflow.org/beta/tutorials/text/nmt_with_attention . — Дата обращения: 06.03.2019.
27. OpenCorpora: открытый корпус русского языка [Электронный
ресурс] / opencorpora.org . — OpenCorpora: открытый корпус русского языка. — Режим доступа: http://opencorpora.org/ . — Дата обращения: 12.02.2019.
28. Russian Distributional Thesaurus - NLPub [Электронный ресурс] /
nlpub.ru NLPub. — Режим доступа:
https://nlpub.ru/Russian_Distributional_Thesaurus. — Дата обращения:
18.04.2019.