Automatic Classification of Software Requirements in Vietnamese based on Machine Learning Techniques

  • Thi Nham Cao
  • Dai Tho Dang
  • Thi My Hanh Le
  • Thanh Binh Nguyen
Keywords: Software Engineering, Requirements Engineering, Requirements Classification, Machine Learning


Requirements engineering is often the first stage in the software process to understand the problem statement. Finding mistakes earlier in requirements helps reduce the development cost. One activity contributing to defining clear, complete and precise requirements is classifying requirement items in the specification. This paper presents a classification approach of functional and non-functional requirements
in Vietnamese using different supervised machine learning techniques. Five supervised machine learning algorithms, including Na¨ıve Bayes (NB), Support Vector Machine (SVM), Logistics Regression (LR), Multi-layer Perceptron Neural Network (MLP), and FastText, are implemented, trained, tested and compared using a dataset. The experimental results show that NB is the best model in terms of accuracy.


Zijad Kurtanovic, Walid Maalej, "Automatically Classifying Functional and Non-Functional Requirements Using Supervised Machine Learning," IEEE International Conference on Requirements Engineering, 2017, pp. 490-495.

Zahra Shakeri Hossein Abad, Oliver Karras, Parisa Ghazi, Martin Glinz, Guenther Ruhe, Kurt Schneider, "What Works Better? A Study of Classifying Requirements," 25th IEEE International Requirements Engineering Conference, 2017, pp. 496-501.

Fabiano Dalpiaz, Davide Dell’Anna, Fatma Bas¸ak Aydemir, Sercan C¸ evikol, "Requirements Classification with Interpretable Machine Learning and Dependency Parsing," IEEE International Conference on Requirements Engineering, 2019, pp. 142-152.

Tobias Hey, Jan Keim, Anne Koziolek, Walter F. Tichy, "NoRBERT- Transfer Learning for Requirements Classification," IEEE 28th International Requirements Engineering Conference, 2020.

Edna Dias Canedo, Bruno Cordeiro Mendes, "Software Requirements Classification Using Machine Learning Algorithms," Entropy, vol. 22, 2020.

Rajesh Kumar Gnanasekaran, Suranjan Chakraborty, Josh Dehlinger, Lin Deng, "Using recurrent neural networks for classification of natural language-based non-functional requirements," Proceedings of REFSQ-2021 Workshops, 2021.

Rajni Jindal, Ruchika Malhotra, Abha Jain, Ankita Bansal, "Mining Non-Functional Requirements using Machine Learning Techniques," e-Informatica Software Engineering Journal, vol. 15, 2021.

Nouf Rahimi, Fathy Eassa, Lamiaa Elrefaei, "An Ensemble Machine Learning Technique for Functional Requirement Classification," Symmetry, vol. 12 (10), 2019.

Agustin Casamayor, Daniela Godoy, Marcelo Campo, "Identification of non-functional requirements in textual specifications: A semi-supervised learning approach," Information and Software Technology, vol. 52 (4), 2010.

Anna Perini, Angelo Susi, Paolo Avesani, "A Machine Learning Approach to Software Requirements Prioritization," IEEE Transactions on Software Engineering, vol. 9 (4), 2013.

Lorijn van Rooijen, Frederik Simon Baumer, Marie Christin Platenius,Michaela Geierhos, Heiko Hamann, Gregor Engels, "From User Demand to Software Service: Using Machine Learning to Automate the Requirements Specification Process," IEEE 25th International Requirements Engineering Conference Workshops, 2017, pp. 379-385.

Tetsuo Tamai, Taichi Anzai, "Quality Requirements Analysis with Machine Learning," Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering, 2018, pp. 241-248.

Law Foong Li, Nicholas Chia Jin-An, Zarinah Mohd Kasirun, "An Empirical Comparison of Machine Learning Algorithms for Classification of Software Requirements," International Journal of Advanced Computer Science and Applications, vol. 10, 2019.

Minh-Ngoc Nguyen, “Revenue of software industry in Vietnam 2016-2020”, Statista, Jan 24, 2022