Chatbot model for personal computer configuration using NLP methods
Abstract
Objective: to improve the convenience and efficiency of selecting personal computer components by using a Telegram chatbot with NLP methods to process user requests.
Research Methods: methods of natural language processing NLP were used to interpret user queries and generate chatbot responses; methods for building dialogue systems; and approaches to organizing software components. The Telegram chatbot was implemented based on a client-server architecture, where the client side provides interaction with the user on Telegram, and the server side handles data processing and PC component selection logic. The implementation used the following technologies: Python programming language, the python-telegram-bot library for creating the chatbot, NLP tools for analyzing and interpreting user queries, and fuzzy matching to improve search results.
As a result, a Telegram chatbot was created to automate the process of selecting components for personal computers, taking into account individual user needs and preferences. The system allows users to quickly receive recommendations for selecting PC components such as CPU, GPU, RAM, storage, motherboard, and power supply, considering price category, intended purpose (gaming, work, multimedia), and desired specifications. The chatbot provides a convenient interaction through Telegram, while the server side handles request processing, text analysis, and generating optimal configurations using NLP methods and fuzzy matching. For natural language processing, the libraries and tools used include Stanza, NLTK (tokenization, stemming, lemmatization), and TextBlob; for fuzzy search, RapidFuzz was applied. Using Python and the python-telegram-bot library ensures reliable system performance, flexibility in scaling, and the ability to quickly update the component database.
Conclusions: The developed Telegram chatbot allows automating the selection of PC components according to individual user needs and preferences. The system enables component selection for various use cases — gaming, work, multimedia, budget or high-performance configurations, and more. This allows users to quickly receive optimal recommendations, reduces the likelihood of errors when assembling configurations, and simplifies the component selection process. The developed system improves user convenience, optimizes the component selection process, promotes more efficient user interaction with the system.
Downloads
References
/References
Text Processing and NLP in Python : website. URL: https://www.datacamp.com/community/tutorials/text-analytics-beginners-nltk
What Is Fuzzy Matching and How Can It Clean Up My Bad Data? : website. URL: https://profisee.com/fuzzy-matching/
Using Stanza for NLP Tasks in Python : website. URL: https://stanfordnlp.github.io/stanza/
Tokenization in NLP : website. URL: https://www.geeksforgeeks.org/nlp/nlp-how-tokenizing-text-sentence-words-works/
Text Normalization for Natural Language Processing : website. URL: https://medium.com/data-science/text-normalization-for-natural-language-processing-nlp-70a314bfa646
NLTK Documentation : website. URL: https://www.nltk.org/
What Is Stemming? | IBM : website. URL: https://www.ibm.com/think/topics/stemming
Lemmatization in NLP : website. URL: https://medium.com/@kevinnjagi83/lemmatization-in-nlp-2a61012c5d66
What is Morphological Analysis in Natural Language Processing (NLP)? : website. URL: https://www.geeksforgeeks.org/nlp/morphological-analysis-in-nlp/
What is Sentiment Analysis? : website. URL: https://www.ibm.com/think/topics/sentiment-analysis
TextBlob Documentation : website. URL: https://textblob.readthedocs.io/en/dev/
What is Named Entity Recognition? : website. URL: https://www.ibm.com/think/topics/named-entity-recognition
Industrial-Strength Natural Language Processing : website. URL: https://spacy.io/
FuzzyWuzzy Python Library: Interesting Tool for NLP and Text Analytics : website. URL: https://www.analyticsvidhya.com/blog/2021/06/fuzzywuzzy-python-library-interesting-tool-for-nlp-and-text-analytics/
RapidFuzz Documentation : website. URL: https://rapidfuzz.github.io/RapidFuzz/
Telegram Bot API Documentation : website. URL: https://core.telegram.org/bots/api
How to Build a Telegram Bot in Python : website. URL: https://core.telegram.org/bots/samples
PCPartPicker : website. URL: https://pcpartpicker.com/
Logical Increments : website. URL: https://www.logicalincrements.com/
Rozetka : website. URL: https://rozetka.com.ua/
Amazon : website. URL: https://www.amazon.com/
Veres O., Hadzalo O. Application of Methods of Recommendations in the Analysis of Computer Components. SISN. 2023. Vol. 14. P. 84–98. [in Ukrainian]
Chatwattana P., Yangthisarn P., Tabubpha A. The Educational Recommendation System with Artificial Intelligence Chatbot: A Case Study in Thailand : article. International Journal of Engineering Pedagogy (iJEP). 2024. Vol. 14, No. 5. P. 51–64.
Bird S., Klein E., Loper E. Natural Language Processing with Python : textbook. O’Reilly Media. United States of America, 2009. 502 p.
Text Processing and NLP in Python : website. URL: https://www.datacamp.com/community/tutorials/text-analytics-beginners-nltk
What Is Fuzzy Matching and How Can It Clean Up My Bad Data? : website. URL: https://profisee.com/fuzzy-matching/
Using Stanza for NLP Tasks in Python : website. URL: https://stanfordnlp.github.io/stanza/
Tokenization in NLP : website. URL: https://www.geeksforgeeks.org/nlp/nlp-how-tokenizing-text-sentence-words-works/
Text Normalization for Natural Language Processing : website. URL: https://medium.com/data-science/text-normalization-for-natural-language-processing-nlp-70a314bfa646
NLTK Documentation : website. URL: https://www.nltk.org/
What Is Stemming? | IBM : website. URL: https://www.ibm.com/think/topics/stemming
Lemmatization in NLP : website. URL: https://medium.com/@kevinnjagi83/lemmatization-in-nlp-2a61012c5d66
What is Morphological Analysis in Natural Language Processing (NLP)? : website. URL: https://www.geeksforgeeks.org/nlp/morphological-analysis-in-nlp/
What is Sentiment Analysis? : website. URL: https://www.ibm.com/think/topics/sentiment-analysis
TextBlob Documentation : website. URL: https://textblob.readthedocs.io/en/dev/
What is Named Entity Recognition? : website. URL: https://www.ibm.com/think/topics/named-entity-recognition
Industrial-Strength Natural Language Processing : website. URL: https://spacy.io/
FuzzyWuzzy Python Library: Interesting Tool for NLP and Text Analytics : website. URL: https://www.analyticsvidhya.com/blog/2021/06/fuzzywuzzy-python-library-interesting-tool-for-nlp-and-text-analytics/
RapidFuzz Documentation : website. URL: https://rapidfuzz.github.io/RapidFuzz/
Telegram Bot API Documentation : website. URL: https://core.telegram.org/bots/api
How to Build a Telegram Bot in Python : website. URL: https://core.telegram.org/bots/samples
PCPartPicker : website. URL: https://pcpartpicker.com/
Logical Increments : website. URL: https://www.logicalincrements.com/
Rozetka : website. URL: https://rozetka.com.ua/
Amazon : website. URL: https://www.amazon.com/
Veres O., Hadzalo O. Application of Methods of Recommendations in the Analysis of Computer Components. SISN. 2023. Vol. 14. P. 84–98. [in Ukrainian]
Chatwattana P., Yangthisarn P., Tabubpha A. The Educational Recommendation System with Artificial Intelligence Chatbot: A Case Study in Thailand : article. International Journal of Engineering Pedagogy (iJEP). 2024. Vol. 14, No. 5. P. 51–64.
Bird S., Klein E., Loper E. Natural Language Processing with Python : textbook. O’Reilly Media. United States of America, 2009. 502 p.