Sentiment analysis is a vital task in natural language processing, and the code was to give a comprehensive approach to tackle it. The implementation began by checking if pre-trained models for XGBoost and LightGBM existed. If available, the models were loaded; otherwise, new models were built and trained. This approach allowed for reusability of trained models, saving time and effort in subsequent runs.
Similarly, the code checked if preprocessed data for LSTM existed. If not, it performed tokenization and padding on the text data, splitting it into train, test, and validation sets. The preprocessed data was saved for future use.
The code also provided a function to build and train the LSTM model. It defined the model architecture using the Keras Sequential API, incorporating layers like embedding, convolutional, max pooling, bidirectional LSTM, dropout, and dense output. The model was compiled with appropriate loss and optimization functions. Training was carried out, with early stopping implemented to prevent overfitting.
After training, the model summary was printed, and both the model and training history were saved for future reference. The train_lstm function ensured that the LSTM model was ready for prediction by checking the existence of preprocessed data and trained models. If necessary, it performed the required preprocessing and model building steps.
The pred_lstm() function was responsible for loading the LSTM model and generating predictions for the test data. The function returned the predicted sentiment labels, allowing for further analysis and evaluation.
To facilitate user interaction, the code included a functionality to choose the LSTM model for prediction. The choose_prediction_lstm() function was triggered when the user selected the LSTM option from a dropdown menu. It called the pred_lstm() function, performed evaluation tasks, and visualized the results. Confusion matrices and true vs. predicted value plots were generated to assess the model's performance. Additionally, the loss and accuracy history from training were plotted, providing insights into the model's learning process.
In conclusion, this project provided a comprehensive overview of sentiment analysis using machine learning models. The code implementation showcased the steps involved in building, training, and evaluating models like XGBoost, LightGBM, and LSTM. It emphasized the importance of data preprocessing, model building, and evaluation in sentiment analysis tasks. The code also demonstrated functionalities for reusing pre-trained models and saving preprocessed data, enhancing efficiency and ease of use. Through visualization techniques, such as confusion matrices and accuracy/loss curves, the code enabled a better understanding of the model's performance and learning dynamics. Overall, this project highlighted the practical aspects of sentiment analysis and illustrated how different machine learning models can be employed to tackle this task effectively.
Vivian Siahaan is a fast-learner who likes to do new things. She was born, raised in Hinalang Bagasan, Balige, on the banks of Lake Toba, and completed high school education from SMAN 1 Balige. She started herself learning Java, Android, JavaScript, CSS, C ++, Python, R, Visual Basic, Visual C #, MATLAB, Mathematica, PHP, JSP, MySQL, SQL Server, Oracle, Access, and other programming languages. She studied programming from scratch, starting with the most basic syntax and logic, by building several simple and applicable GUI applications. Animation and games are fields of programming that are interests that she always wants to develop. Besides studying mathematical logic and programming, the author also has the pleasure of reading novels. Vivian Siahaan has written dozens of ebooks that have been published on Sparta Publisher: Data Structure with Java; Java Programming: Cookbook; C ++ Programming: Cookbook; C Programming For High Schools / Vocational Schools and Students; Java Programming for SMA / SMK; Java Tutorial: GUI, Graphics and Animation; Visual Basic Programming: From A to Z; Java Programming for Animation and Games; C # Programming for SMA / SMK and Students; MATLAB For Students and Researchers; Graphics in JavaScript: Quick Learning Series; JavaScript Image Processing Methods: From A to Z; Java GUI Case Study: AWT & Swing; Basic CSS and JavaScript; PHP / MySQL Programming: Cookbook; Visual Basic: Cookbook; C ++ Programming for High Schools / Vocational Schools and Students; Concepts and Practices of C ++; PHP / MySQL For Students; C # Programming: From A to Z; Visual Basic for SMA / SMK and Students; C # .NET and SQL Server for High School / Vocational School and Students. At the ANDI Yogyakarta publisher, Vivian Siahaan also wrote a number of books including: Python Programming Theory and Practice; Python GUI Programming; Python GUI and Database; Build From Zero School Database Management System In Python / MySQL; Database Management System in Python / MySQL; Python / MySQL For Management Systems of Criminal Track Record Database; Java / MySQL For Management Systems of Criminal Track Records Database; Database and Cryptography Using Java / MySQL; Build From Zero School Database Management System With Java / MySQL.
Rismon Hasiholan Sianipar was born in Pematang Siantar, in 1994. After graduating from SMAN 3 Pematang Siantar 3, the writer traveled to the city of Jogjakarta. In 1998 and 2001 the author completed his Bachelor of Engineering (S.T) and Master of Engineering (M.T) education in the Electrical Engineering of Gadjah Mada University, under the guidance of Prof. Dr. Adhi Soesanto and Prof. Dr. Thomas Sri Widodo, focusing on research on non-stationary signals by analyzing their energy using time-frequency maps. Because of its non-stationary nature, the distribution of signal energy becomes very dynamic on a time-frequency map. By mapping the distribution of energy in the time-frequency field using discrete wavelet transformations, one can design non-linear filters so that they can analyze the pattern of the data contained in it. In 2003, the author received a Monbukagakusho scholarship from the Japanese Government. In 2005 and 2008, he completed his Master of Engineering (M.Eng) and Doctor of Engineering (Dr.Eng) education at Yamaguchi University, under the guidance of Prof. Dr. Hidetoshi Miike. Both the master's thesis and his doctoral thesis, R.H. Sianipar combines SR-FHN (Stochastic Resonance Fitzhugh-Nagumo) filter strength with cryptosystem ECC (elliptic curve cryptography) 4096-bit both to suppress noise in digital images and digital video and maintain its authenticity. The results of this study have been documented in international scientific journals and officially patented in Japan. One of the patents was published in Japan with a registration number 2008-009549. He is active in collaborating with several universities and research institutions in Japan, particularly in the fields of cryptography, cryptanalysis and audio / image / video digital forensics. R.H. Sianipar also has experience in conducting code-breaking methods (cryptanalysis) on a number of intelligence data that are the object of research studies in Japan. R.H. Sianipar has a number of Japanese patents, and has written a number of national / international scientific articles, and dozens of national books. R.H. Sianipar has also participated in a number of workshops related to cryptography, cryptanalysis, digital watermarking, and digital forensics. In a number of workshops, R.H. Sianipar helps Prof. Hidetoshi Miike to create applications related to digital image / video processing, steganography, cryptography, watermarking, non-linear screening, intelligent descriptor-based computer vision, and others, which are used as training materials. Field of interest in the study of R.H. Sianipar is multimedia security, signal processing / digital image / video, cryptography, digital communication, digital forensics, and data compression / coding. Until now, R.H. Sianipar continues to develop applications related to analysis of signal, image, and digital video, both for research purposes and for commercial purposes based on the Python programming language, MATLAB, C ++, C, VB.NET, C # .NET, R, and Java.