Chabot Song Recommended System
Chabot Song Recommended System
Abstract
The use of chatbots has become increasingly popular in recent years, as more
organisations try to improve and streamline their customer service operations. One
area which has been gaining momentum is the use of chatbots for music
recommendation. Such systems utilise AI technologies to deliver personalised
music recommendations to users via conversational interfaces. Chatbot music
recommender systems present several benefits namely, they provide a personalised
and natural experience which can be engaging for the users. Moreover, the users
can engage in a dialogue whereby the system can better interpret the user context
and preferences. This work presents the development of a chatbot personalised
music recommender system, with a web interface that can provide song
recommendations based on the user’s emotions.
Introduction
In the digital age, music consumption has evolved dramatically, with streaming
services providing access to vast libraries of songs across genres and cultures.
However, the abundance of choice can often lead to decision fatigue, making it
challenging for users to find music that resonates with their current mood or
preferences. Traditional recommendation systems often rely on algorithms that
analyze listening history, which can overlook the nuances of individual user
experiences.
While many platforms attempt to facilitate music discovery, they often fall short in
several areas:
1. Pandora
o Disadvantages: Pandora’s music genome project categorizes songs
by characteristics, but this approach can feel impersonal. Users may
have difficulty finding specific songs that fit their current emotional
state, as the system is more focused on genre rather than mood.
2. Apple Music
o Disadvantages: Apple Music’s recommendations stem largely from
user-generated playlists and listening history. While it offers curated
playlists, it does not provide an interactive way for users to express
their current feelings or moods, limiting the personalization of
suggestions.
3. Last.fm
o Disadvantages: Last.fm’s scrobbling feature tracks user listening
habits, but its recommendation engine does not engage users
interactively. This system can lead to a disconnect, as users may not
always feel that their current emotional state is reflected in the
recommendations.
The proposed chatbot-based song recommendation system seeks to bridge the gap
between user emotions and music discovery. By allowing users to express their
feelings and preferences in natural language, the chatbot can offer tailored song
suggestions that resonate with their current state.
Advantages:
Hardware Requirements :
➢ Processor - Pentium –IV
➢ RAM - 4 GB (min)
➢ Hard Disk - 20 GB
➢ Key Board - Standard Windows Keyboard
➢ Mouse - Two or Three Button Mouse
➢ Monitor - SVGA
Software Requirements :
Operating system : Windows 7 Ultimate.
Coding Language : Python.
Front-End : Python.
Back-End : HTML, Css
System Architecture
FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During
system analysis the feasibility study of the proposed system is to be carried out.
This is to ensure that the proposed system is not a burden to the company. For
feasibility analysis, some understanding of the major requirements for the system
is essential.
ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods that
are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
SYSTEM DESIGN
UML DIAGRAMS:
UML stands for Unified Modeling Language. UML is a standardized
general-purpose modeling language in the field of object-oriented software
engineering. The standard is managed, and was created by, the Object
Management Group.
The goal is for UML to become a common language for creating models of
object oriented computer software. In its current form UML is comprised of two
major components: a Meta-model and a notation. In the future, some form of
method or process may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying,
Visualization, Constructing and documenting the artifacts of software system, as
well as for business modeling and other non-software systems.
The UML represents a collection of best engineering practices that have
proven successful in the modeling of large and complex systems.
The UML is a very important part of developing objects oriented software
and the software development process. The UML uses mostly graphical notations
to express the design of software projects.
GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that
they can develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core
concepts.
3. Be independent of particular programming languages and development
process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Integrate best practices.
SEQUENCE DIAGRAM:
A sequence diagram in Unified Modeling Language (UML) is a kind of interaction
diagram that shows how processes operate with one another and in what order. It is
a construct of a Message Sequence Chart. Sequence diagrams are sometimes called
event diagrams, event scenarios, and timing diagrams.
ACTIVITY DIAGRAM:
Activity diagrams are graphical representations of workflows of stepwise activities
and actions with support for choice, iteration and concurrency. In the Unified
Modeling Language, activity diagrams can be used to describe the business and
operational step-by-step workflows of components in a system. An activity
diagram shows the overall flow of control.
SOFTWARE ENVIRONMENT
Python is a high-level, interpreted scripting language developed in the late
1980s by Guido van Rossum at the National Research Institute for Mathematics
and Computer Science in the Netherlands. The initial version was published at the
alt. Sources newsgroup in 1991, and version 1.0 was released in 1994.
Python 2.0 was released in 2000, and the 2.x versions were the prevalent releases
until December 2008. At that time, the development team made the decision to
release version 3.0, which contained a few relatively small but significant changes
that were not backward compatible with the 2.x versions. Python 2 and 3 are very
similar, and some features of Python 3 have been back ported to Python 2. But in
general, they remain not quite compatible.
Both Python 2 and 3 have continued to be maintained and developed, with periodic
release updates for both. As of this writing, the most recent versions available are
2.7.15 and 3.6.5. However, an official End of Life date of January 1, 2020 has been
established for Python 2, after which time it will no longer be maintained. If you
are a newcomer to Python, it is recommended that you focus on Python 3, as this
tutorial will do.
Python is still maintained by a core development team at the Institute, and Guido is
still in charge, having been given the title of BDFL (Benevolent Dictator For Life)
by the Python community. The name Python, by the way, derives not from the
snake, but from the British comedy troupe Monty Python’s Flying Circus, of which
Guido was, and presumably still is, a fan. It is common to find references to Monty
Python sketches and movies scattered throughout the Python documentation.
If you’re going to write programs, there are literally dozens of commonly used
languages to choose from. Why choose Python? Here are some of the features that
make Python an appealing choice.
Python is Popular
Python has been growing in popularity over the last few years. The 2018 Stack
Overflow Developer Survey ranked Python as the 7th most popular and the
number one most wanted technology of the year. World-class software
development countries around the globe use Python every single day.
According to research by Dice Python is also one of the hottest skills to have and
the most popular programming language in the world based on the Popularity of
Programming Language Index.
Due to the popularity and widespread use of Python as a programming language,
Python developers are sought after and paid well. If you’d like to dig deeper
into Python salary statistics and job opportunities, you can do so here.
Python is interpreted
Many languages are compiled, meaning the source code you create needs to be
translated into machine code, the language of your computer’s processor, before it
can be run. Programs written in an interpreted language are passed straight to an
interpreter that runs them directly.
This makes for a quicker development cycle because you just type in your code
and run it, without the intermediate compilation step.
Python is Free
Python is Portable
Because Python code is interpreted and not compiled into native machine
instructions, code written for one platform will work on any other platform that has
the Python interpreter installed. (This is true of any interpreted language, not just
Python.)
Python is Simple
A rough estimate of the complexity of a language can be gleaned from the number
of keywords or reserved words in the language. These are words that are reserved
for special meaning by the compiler or interpreter because they designate specific
built-in functionality of the language.
Python 3 has 33 keywords, and Python 2 has 31. By contrast, C++ has 62, Java has
53, and Visual Basic has more than 120, though these latter examples probably
vary somewhat by implementation or dialect.
Python code has a simple and clean structure that is easy to learn and easy to read.
In fact, as you will see, the language definition enforces code structure that is easy
to read.
But It’s Not That Simple For
all its syntactical simplicity, Python supports most constructs that would be
expected in a very high-level language, including complex dynamic data types,
structured and functional programming, and object-oriented programming.
Python accomplishes what many programming languages don’t: the language itself
is simply designed, but it is very versatile in terms of what you can accomplish
with it.
Conclusion
This section gave an overview of the Python programming language, including:
Python is a great option, whether you are a beginning programmer looking to learn
the basics, an experienced programmer designing a large application, or anywhere
in between. The basics of Python are easily grasped, and yet its capabilities are
vast. Proceed to the next section to learn how to acquire and install Python on your
computer.
Python has a very easy-to-read syntax. Some of Python's syntax comes from C,
because that is the language that Python was written in. But Python uses
whitespace to delimit code: spaces or tabs are used to organize code into groups.
This is different from C. In C, there is a semicolon at the end of each line and curly
braces ({}) are used to group code. Using whitespace to delimit code makes
Python a very easy-to-read language.
places. Sometimes only Python code is used for a program, but most of the time it
is used to do simple jobs while another programming language is used to do more
complicated tasks.
Its standard library is made up of many functions that come with Python when it is
installed. On the Internet there are many other libraries available that make it
possible for the Python language to do more things. These libraries make it a
powerful language; it can do many different things.
Some things that Python is often used for are:
Web development
Scientific programming
Desktop GUIs
Network programming
Game programming
SYSTEM TESTING
TYPES OF TESTS
Unit testing:
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid
outputs. All decision branches and internal code flow should be validated. It is the
testing of individual software units of the application .it is done after the
completion of an individual unit before integration. This is a structural testing, that
relies on knowledge of its construction and is invasive. Unit tests perform basic
tests at component level and test a specific business process, application, and/or
system configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined
inputs and expected results.
Integration testing:
Integration tests are designed to test integrated software components to
determine if they actually run as one program. Testing is event driven and is more
concerned with the basic outcome of screens or fields. Integration tests
demonstrate that although the components were individually satisfaction, as shown
by successfully unit testing, the combination of components is correct and
consistent. Integration testing is specifically aimed at exposing the problems that
arise from the combination of components.
Functional test:
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system
documentation, and user manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures : interfacing systems or procedures must be invoked.
Organization and preparation of functional tests is focused on requirements,
key functions, or special test cases. In addition, systematic coverage pertaining to
identify Business process flows; data fields, predefined processes, and successive
processes must be considered for testing. Before functional testing is complete,
additional tests are identified and the effective value of current tests is determined.
System Test:
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.
White Box Testing:
White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least
its purpose. It is purpose. It is used to test areas that cannot be reached from a black
box level.
Black Box Testing:
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document, such
as specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black
box .you cannot “see” into it. The test provides inputs and responds to outputs
without considering how the software works.
Unit Testing:
Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
testing to be conducted as two distinct phases.
Test strategy and approach:
Field testing will be performed manually and functional tests will be written
in detail.
Test objectives:
Features to be tested
Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires
significant participation by the end user. It also ensures that the system meets the
functional requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
This approach not only enhances user satisfaction by providing relevant and timely
recommendations but also encourages exploration and discovery in a way that feels
intuitive and engaging. As users navigate their emotional landscapes, the chatbot
serves as a companion, guiding them to music that resonates with their mood, thus
transforming the often overwhelming task of music selection into a more enjoyable
and fulfilling experience.
Future Scope