Автоматическая расстановка знаков препинания с помощью нейронных сетей
Аннотация
Решена задача автоматической расстановки знаков препинания в тексте, разделенном на предложения. Определены позиции таких знаков препинания, как запятая, тире, двоеточие, восклицательный и вопросительный знаки. Рассмотрены два подхода к решению задачи.
В первом — задача сводится к классификации n-грамм. Класс n-граммы определяются по виду знаков препинания после ее k-го токена (n = 5, k = 3). В качестве классификатора использован многослойный перцептрон, на вход которого подаются векторные представления n-грамм, формируемые с применением модели word2vec.
Во втором — нейронная сеть с архитектурой трансформера, принимающая входную последовательность токенов (ВП), освобожденную от знаков препинания, обучается генерировать целевую последовательность токенов (ЦП), позволяющую расставить в исходном предложении знаки препинания. ЦП создается по ВП в результате замены токенов, связанных со знаками препинания соответствующими маркерами. Токены ВП, не связанные со знаками препинания, переносятся в ЦП без изменений. Для сокращения словаря токенов словоформы заменены леммами, а элементы текста, содержащие символы, отличные от букв русского алфавита, — специальными токенами. Для той же цели специальными токенами заменены имена, отчества, фамилии, топонимы и числительные. В качестве инструмента, определяющего части речи и именованные сущности, предложен классификатор словоформ. Проанализированы ВП и ЦП двух видов. ВП второго вида формируется по ВП первого вида в результате добавления к леммам обозначения части речи. ЦП различаются способом замещения токенов, связанных с запятыми, соответствующими маркерами. В ЦП первого вида маркером замещены токен и последующая запятая, в ЦП второго вида — токен и предшествующая запятая. Эффективность моделей оценена показателями precision и F1, вычисляемыми для каждого класса, а затем усредненными. При использовании классификатора значение F1 равно 0,77, а в случае трансформера — 0,86.
Литература
2. Tilk1 O., Alumae T. Bidirectional Recurrent Neural Network with Attention Mechanism for Punctuation Restoration // Proc. INTERSPEECH Conf. San Francisco, 2016. Pp. 3047—3051.
3. Che X. e. a. Punctuation Prediction for Unsegmented Transcript Based on Word Vector // Proc. Intern. Conf. Language Resources and Evaluation. Bern, 2016. Pp. 654—658.
4. Pennington J., Socher R., Manning C.D. GloVe: Global Vectors for Word Representation. [Электрон. ресурс] https://nlp.stanford.edu/projects/glove/ (дата обращения 01.02.2022).
5. Nagy A., Bial B., Ács J. Automatic Punctuation Restoration with BERT Models [Электрон. ресурс] https://arxiv.org/pdf/2101.07343.pdf (дата обращения 01.02.2022).
6. Yi J. e. a. Adversarial Transfer Learning for Punctuation Restorati [Электрон. ресурс] https://arxiv.org/pdf/2004.00248.pdf (дата обращения 01.02.2022).
7. Условные случайные поля (CRF): краткий обзор [Офиц. сайт] http://nlpx.net/archives/439 (дата обращения 01.02.2022).
8. Keras [Офиц. сайт] https://keras.io/ (дата обращения 01.02.2022).
9. Vaswani A. e. a. Attention Is All You Need // Proc. 31st Conf. Neural Proc. Systems. Long Beach, 2017. Pp. 1—15.
10. PyTorch [Офиц. сайт] https://pytorch.org/ (дата обращения 01.02.2022).
11. Открытый корпус [Офиц. сайт] http://opencorpora.org/ (дата обращения 01.02.2022).
12. BERT in DeepPavlov. [Офиц. сайт] http://docs.deeppavlov.ai/en/master/features/models/bert.html (дата обращения 01.02.2022).
13. Морфологический словарь русского языка [Офиц. сайт] https://morfologija.ru/ (дата обращения 01.02.2022).
14. Большой академический словарь русского языка [Электрон. ресурс] https://www.livelib.ru/pubseries/1658152-bolshoj-akademicheskij-slovar-russkogo-yazyka (дата обращения 01.02.2022).
15. Морфологический анализатор pymorphy2 [Офиц. сайт] https://pymorphy2.readthedocs.io/en/stable/ (дата обращения 01.02.2022).
16. Mikolov T. e. a. Distributed Representations of Words and Phrases and Their Compositionality [Электрон. ресурс] www.arxiv.org/abs/1310.4546 (дата обращения 01.02.2022).
17. LOGSOFTMAX [Электрон. ресурс] https://pytorch.org/docs/stable/generated/torch.nn.LogSoftmax.html (дата обращения 01.02.2022).
18. KLDIVLOSS [Электрон. ресурс] https://pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html (дата обращения 01.02.2022).
19. The Annotated Transformer [Электрон. ресурс] http://nlp.seas.harvard.edu/2018/04/03/attention.html (дата обращения 01.02.2022).
20. Ba J.L., Kiros J.R., Hinton G.E. Layer Normalization [Электрон. ресурс] https://arxiv.org/abs/1607.06450 (дата обращения 01.02.2022).
21. Srivastava N. e. a. Dropout: a Simple Way to Prevent Neural Networks from Overfitting // J. Machine Research. 2014. V. 15. Pp. 1929—1958.
---
Для цитирования: Бартеньев О.В. Автоматическая расстановка знаков препинания с помощью нейронных сетей // Вестник МЭИ. 2022. № 6. С. 146—159. DOI: 10.24160/1993-6982-2022-6-146-159
#
1. Tekstovod [Elektron. Resurs] https://textovod.com/punctuation (Data Obrashcheniya 01.02.2022). (in Russian).
2. Tilk1 O., Alumae T. Bidirectional Recurrent Neural Network with Attention Mechanism for Punctuation Restoration. Proc. INTERSPEECH Conf. San Francisco, 2016:3047—3051.
3. Che X. e. a. Punctuation Prediction for Unsegmented Transcript Based on Word Vector. Proc. Intern. Conf. Language Resources and Evaluation. Bern, 2016:654—658.
4. Pennington J., Socher R., Manning C.D. GloVe: Global Vectors for Word Representation. [Elektron. Resurs] https://nlp.stanford.edu/projects/glove/ (Data Obrashcheniya 01.02.2022).
5. Nagy A., Bial B., Ács J. Automatic Punctuation Restoration with BERT Models [Elektron. Resurs] https://arxiv.org/pdf/2101.07343.pdf (Data Obrashcheniya 01.02.2022).
6. Yi J. e. a. Adversarial Transfer Learning for Punctuation Restorati [Elektron. Resurs] https://arxiv.org/pdf/2004.00248.pdf (Data Obrashcheniya 01.02.2022).
7. Uslovnye Sluchaynye Polya (CRF): Kratkiy Obzor [Ofits. Sayt] http://nlpx.net/archives/439 (Data Obrashcheniya 01.02.2022). (in Russian).
8. Keras [Ofits. Sayt] https://keras.io/ (Data Obrashcheniya 01.02.2022).
9. Vaswani A. e. a. Attention Is All You Need. Proc. 31st Conf. Neural Proc. Systems. Long Beach, 2017:1—15.
10. PyTorch [Ofits. Sayt] https://pytorch.org/ (Data Obrashcheniya 01.02.2022).
11. Otkrytyy Korpus [Ofits. Sayt] http://opencorpora.org/ (Data Obrashcheniya 01.02.2022). (in Russian).
12. BERT in DeepPavlov. [Ofits. Sayt] http://docs.deeppavlov.ai/en/master/features/models/bert.html (Data Obrashcheniya 01.02.2022).
13. Morfologicheskiy Slovar' Russkogo Yazyka [Ofits. Sayt] https://morfologija.ru/ (Data Obrashcheniya 01.02.2022). (in Russian).
14. Bol'shoy Akademicheskiy Slovar' Russkogo Yazyka [Elektron. Resurs] https://www.livelib.ru/pubseries/1658152-bolshoj-akademicheskij-slovar-russkogo-yazyka (Data Obrashcheniya 01.02.2022). (in Russian).
15. Morfologicheskiy Analizator pymorphy2 [Ofits. Sayt] https://pymorphy2.readthedocs.io/en/stable/ (Data Obrashcheniya 01.02.2022). (in Russian).
16. Mikolov T. e. a. Distributed Representations of Words and Phrases and Their Compositionality [Elektron. Resurs] www.arxiv.org/abs/1310.4546 (Data Obrashcheniya 01.02.2022).
17. LOGSOFTMAX [Elektron. Resurs] https://pytorch.org/docs/stable/generated/torch.nn.LogSoftmax.html (Data Obrashcheniya 01.02.2022).
18. KLDIVLOSS [Elektron. Resurs] https://pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html (Data Obrashcheniya 01.02.2022).
19. The Annotated Transformer [Elektron. Resurs] http://nlp.seas.harvard.edu/2018/04/03/attention.html (Data Obrashcheniya 01.02.2022).
20. Ba J.L., Kiros J.R., Hinton G.E. Layer Normalization [Elektron. Resurs] https://arxiv.org/abs/1607.06450 (Data Obrashcheniya 01.02.2022).
21. Srivastava N. e. a. Dropout: a Simple Way to Prevent Neural Networks from Overfitting. J. Machine Research. 2014;15:1929—1958.
---
For citation: Bartenyev O.V. Automatic Placement of Punctuation Marks by Using Neural Networks. Bulletin of MPEI. 2022;6:146—159. (in Russian). DOI: 10.24160/1993-6982-2022-6-146-159