Модель чат-бота для конфігурування персонального комп’ютера із застосуванням методів NLP
Анотація
Мета роботи: підвищення зручності та ефективності вибору компонентів персонального комп’ютера шляхом використання Telegram чат-бота з методами NLP для врахування запитів користувача.
Методи дослідження: методи обробки природної мови NLP для інтерпретації користувацьких запитів та формування відповідей чат-бота; методи побудови діалогових систем; підходи до організації компонентів програмного забезпечення. Telegram чат-бот реалізовано на основі клієнт-серверної архітектури, де клієнтська частина забезпечує взаємодію з користувачем у Telegram, а серверна — логіку обробки даних і підбору компонентів ПК. Для реалізації використані технології: мова програмування Python, бібліотека python-telegram-bot для створення чат-бота, інструменти NLP для аналізу та інтерпретації запитів користувача та fuzzy matching для покращення пошуку.
У результаті створено модель Telegram чат-бота, який автоматизує процес підбору комплектуючих для персональних комп’ютерів, враховуючи індивідуальні потреби та побажання користувача. Чат-бот дозволяє швидко отримати рекомендації щодо вибору компонентів ПК, таких як процесор, відеокарта, оперативна пам’ять, накопичувач, материнська плата та блок живлення, з урахуванням цінової категорії, призначення (ігри, робота, мультимедіа) та бажаних характеристик. Чат-бот забезпечує зручну взаємодію через Telegram, а серверна частина відповідає за обробку запитів, аналіз тексту користувача та формування оптимальних конфігурацій з використанням методів NLP і fuzzy matching. Для обробки природної мови застосовані бібліотеки та інструменти: Stanza, NLTK (токенізація, стемінг, лематизація), TextBlob; для нечіткого пошуку – RapidFuzz. Використання мови Python та бібліотеки python-telegram-bot забезпечує надійну роботу системи, гнучкість у масштабуванні та можливість швидкого оновлення бази компонентів.
Висновки: створений Telegram чат-бот дозволяє автоматизувати процес підбору комплектуючих для персональних комп’ютерів з урахуванням індивідуальних потреб і побажань користувача. Чат-бот забезпечує можливість підбору компонентів під різноманітні сценарії використання – ігри, робота, мультимедіа, бюджетні або високопродуктивні конфігурації та інше. Це дозволяє користувачам швидко отримувати якісні рекомендації, зменшує ймовірність помилок при складанні конфігурацій і полегшує процес вибору комплектуючих. Отже розроблена модель підвищує зручність користування, спрощує процес вибору компонентів та сприяє більш ефективній взаємодії користувача з системою.
Завантаження
Посилання
/Посилання
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.