Реализация параллельного алгоритма извлечения N-gram из текста на функциональном языке
DOI:
https://doi.org/10.26577/JMMCS.2020.v107.i3.05Ключевые слова:
параллельный алгоритм, функциональный язык, LuNA, N-gram, фрагментированное программированиеАннотация
В данной статье рассматривается реализация параллельного алгоритма извлечения N-gram из слабоструктурированного текста на функциональном языке системы LuNA реализующий технологию фрагментированного программирования. Алгоритм извлечения N-gram относится к задачам NLP. Проведен анализ других реализаций рассматриваемого параллельного алгоритма с использованием технологий MPJ Express, Apache Spark и Apache Hadoop. На основе анализа предлагается выбрать систему LuNA из-за того, что она умеет автоматически настраивать алгоритм на конкретную вычислительную систему за счёт используемой модели алгоритма в виде множества последовательных информационно зависимых задач, которые динамически распределяются по процессорам и ядрам вычислителя. В работе описывается схема реализации данного алгоритма, с применением технологии фрагментированного программирования. В статье была описана схема разделения на фрагменты данных и фрагменты вычислений. Приведена схема реализации алгоритма извлечения N-gram. Проведено тестирование на различном количестве процессоров для извлечения N-gram по словам. При извлечении токенов были удалены все стоп слова, которые задаются заранее в отдельном текстовом хранилище. Тестирование показало хорошую эффективность предлагаемого подхода по реализации алгоритмов с использованием системы LuNA.
Библиографические ссылки
[2] Malyshkin V., Perepelkin V., Schukin G., "Scalable distributed data allocation in LuNA fragmented programming system" , Journal of Supercomputing 73, no. 2 (2016): 726-732.
[3] "Google Natural Language" , https://cloud.google.com/natural-language.
[4] Brants T., Popat A.C., Xu P., Och F.J., Dean J., "Large Language Models in Machine Translation" , Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (2007): 858-867.
[5] Young T., Hazarika D., Poria S., Cambria E., "Recent Trends in Deep Learning Based Natural Language Processing" , IEEE Computational Intelligence Magazine 13, no. 3 (2018): 55-75.
[6] Srinivasa K.G., Shree Devi B.N."GPU Based N-Gram String Matching Algorithm with Score Table Approach for String Searching in Many Documents" , Journal of The Institution of Engineers (India): Series B 98, No.5 (2017): 467-476.
[7] Banasiak D. "Statistical methods of natural language processing on GPU" , Advances in Intelligent Systems and Computing (2016): 595-604.
[8] Shaikh E., Mohiuddin I., Alufaisan Y., Nahvi I., "Apache Spark: A Big Data Processing Engine" , 2019 2nd IEEE Middle East and North Africa COMMunications Conference (2019).
[9] Bougar M., Ziyati E.H., "Addressing Stemming Algorithm for Arabic Text Using Spark Over Hadoop" , Advances in Intelligent Systems and Computing (2020): 74-82.
[10] Aubakirov S., Trigo P., Ahmed-Zaki D., "Comparison of distributed computing approaches to complexity of N-gram extraction" , Proceedings of the 5th International Conference on Data Management Technologies and Applications - Volume 1: DATA (2016): 25-30.