Professional Documents
Culture Documents
Visvesvaraya Technological University: Personality Prediction
Visvesvaraya Technological University: Personality Prediction
AAKRITI UPADHYAY(1RG19CS002)
AKRITI A (1RG19CS004)
HONNURASWAMY L(1RG19CS018)
2021-2022
RAJIV GANDHI INSTITUTE OF TECHNOLOGY
(Affiliated To Visvesvaraya Technological University)
Cholanagar, R.T.Nagar Post, Bangalore-560032
This is to certify that the Mini Project Report entitled “PERSONALITY PREDICTION” is a
bonafide work carried out by Miss AAKRITI UPADHYAY (1RG19CS002), Miss AKRITI
A (1RG19CS004) and Mr. HONNURASWAMY L (1RG19CS018) in partial fulfillment for
the award of Bachelor of Engineering in Computer Science Engineering under
Visvesvaraya Technological University, Belgavi, during the year 2021-2022. It is certified that
all corrections/suggestions given for Internal Assessment have been incorporated in the report.
This Mini Project report has been approved as it satisfies the academic requirements in respect of
work.
EXTERNAL VIVA
1.
2.
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
DECLARATION
We hereby declare that the mini project entitled “PERSONALITY PREDICTION” submitted
to the Visvesvaraya Technological University, Belagavi during the academic year 2021-2022,
is record of an original project done by us under the guidance of Dr.Anthony Raj , Assistant
Professor, Department of Computer Science and Engineering, Rajiv Gandhi Institute of
Technology, Bengaluru and this project is submitted in the partial fulfillment of requirements for
the award of the degree of Bachelor of Engineering in Computer Science & Engineering. The
results embodied in this thesis have not been submitted to any other University or Institute for
award of any degree or diploma.
i
ACKNOWLEDGEMENT
We take this opportunity to express our sincere gratitude and respect to the Rajiv Gandhi Institute
of Technology, Bengaluru for providing us an opportunity to carry out our project work.
We express our sincere regards and thanks to Dr. D G Anand, Principal, RGIT, Bengaluru and
Mrs. ARUDRA A, Professor and Head, Department of Computer Science & Engineering, RGIT,
Bengaluru, for their encouragement and support throughout the Project.
With profound sense of gratitude, I acknowledge the guidance and support extended by
Dr.Anthony Raj Asst. Professor, Department of Computer Science & Engineering,
RGIT,Bengaluru. Her incessant encouragement and valuable technical support have been of immense
help in realizing this project. Her guidance gave me the environment to enhance our knowledge, skills and
to reach the pinnacle with sheer determination, dedication and hard work.
We also extend our thanks to the entire faculty of the Department of CSE, RGIT, Bengaluru, who
have encouraged me throughout the course of Bachelor Degree.
AKRITI A (1RG19CS004)
HONNURASWAMY L (1RG19CS018)
ii
ABSTRACT
The project is based on identifying the personality of an individual using machine learning algorithm .The personality
of a human plays a major role in his personal and professional life Nowadays many organization have also started
shortlisting the candidates based on their personality as this increase the efficiency of the work because the person is
working in what he is good at than what he is forced to do .In our project ,we have tried to combine both personality
prediction algorithm and logistic regression to predict the personality of a person and used term frequency algorithm
to get the skill in which the person is good at. User can easily identify his personality and his technical skill from this
model or system
iii
TABLE OF CONTENTS
Declaration i
Acknowledgement ii
Abstract iii
1.1.2 DESIGN 2
2. REQUIREMENT SPECIFICATION
3. SYSTEM DESIGN
4 SYSTEM IMPLEMENTATION
CONCLUSION 23
BIBLIOGRAPHY 24
TABLE OF FIGURES
CHAPTER 1
INTRODUCTION
The project is based on identifying the personality of an individual using machine learning algorithm .The
personality of a human plays a major role in his personal and professional life Nowadays many organization have
also started shortlisting the candidates based on their personality as this increase the efficiency of the work
because the person is working in what he is good at than what he is forced to do .In our project ,we have tried to
combine both personality prediction using ML algorithm like KNN,CNN and logistic regression to predict the
personality of a person and used term frequency algorithm to get the skill in which the person is good at.
User can easily identify his personality and his technical skill from this model or system
Conscientiousness: This trait is used to describe the carefulness and diligence of the person. It is the
quality that describes how organized and efficient a person is.
Extraversion: It is the trait that describes how the best candidates can interact with people that is how good
are his/her social skills.
Agreeableness: It is a quality that analyses the individual behavior based on the generosity, sympathy,
cooperativeness and ability to adjust with people.
Neuroticism: This trait usually describes a person to have mood swings and has extreme expression power .
1.1.1 DESIGN
The design of the application plays a critical role in performance and scalability. This
system is intended to be continuously improved by the expansion of system capabilities. The system
primarily consists of three parts: a login part to create profile by collecting information; a data warehouse
for data storage; and an efficient and stable data analysis center running in the backend. The mobile
operation APP is based on theAndroid system and can support versions 4.0 and higher.
The main aim of the “Personality development” mini project is to illustrate the various layers in humans
.Through this app, we can find out the personality of a human being.
The users are presented with a set of questions which they are supposed to answer. The algorithm
with deduce their personality based on their answers.
The graphical user interface of the app should look appealing to the user so as to entice them. The app
should provide a pleasant experience and a feeling of accomplishment after being used to encourage
recurrent usage. It should be highly accessible regardless of the user’s familiarity with applications.
Whether the user is a novice or is experienced, the app will be good for both. The key to this app is
simplicity and this app will provide a few features popular in this market, through a simple and straight to
the point application
CHAPTER 2
REQUIREMENT SPECIFICATION
Android is a mobile operating system (OS) currently developed by Google, based on the Linux
kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android's user
interface is mainly based on direct manipulation, using touch gestures that loosely correspond to real-world
actions, such as swiping, tapping and pinching, to manipulate on-screen objects, along with a virtual keyboard
for text input. In addition to touchscreen devices, Google has further developed Android TV for televisions,
Android Auto for cars, and Android Wear for wrist watches, each with a specialized user interface. Variants of
Android are also used on notebooks, game consoles, digital cameras, and other electronics. Initially
developed by Android, Inc., which Google bought in 2005, Android was unveiled in 2007, along with the
founding of the Open Handset Alliance – a consortium of hardware, software, and telecommunication
companies devoted to advancing open standards for mobile devices. As of July 2013, the Google Play store has
had over one million Android applications ("apps") published, and over 50 billion applications downloaded.
An April–May 2013 survey of mobile application developers found that 71% of developers create
applications for Android, and a 2015 survey found that 40% of full-time professional developers see Android
as their priority target platform.
• Applications
• Application Framework
• Android Runtime
• Android Libraries
• Linux Kernel
Applications
Applications are the top layer of android architecture. The pre-installed applications like home,
contacts, camera, gallery etc. and third party applications downloaded from the play store like chat applications,
games etc. will be installed on this platform only. It runs within the Android run time with the help of the classes
and service by application
Application Framework
The Application Framework layer provides many higher-level services to applications in the form of Java
classes. Application developers are allowed to make use of these services in their applications. Application
Framework provides several important classes which are used to create an Android application. It provides a
generic abstraction for hardware access and also helps in managing the user interface with application resources.
Generally, it provides the services with the help of which we can create a particular class and make t hat class
helpful for the Applications creation.
Application runtime
Android Runtime environment is one of the most important part of Android. It contains components
like core libraries and the Dalvik virtual machine(DVM). Mainly, it provides the base for the application
framework and powers our application with the help of the core libraries.
Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a register-based virtual
machine and specially designed and optimized for android to ensure that a device can run multiple instances
efficiently. It depends on the layer Linux kernel for threading and low-level memory management. The core
libraries enable us to implement android applications using the standard JAVA or Kotlin programming
languages.
Android Libraries
This category encompasses those Java-based libraries that are specific to Android development.
Examples of libraries in this category include the application framework libraries in addition to those that
facilitate user interface building, graphics drawing and database access. A summary of some key core Android
libraries available to the Android developer is as follows –
• android.app − Provides access to the application model and is the cornerstone of all Android
applications.
• android.content − Facilitates content access, publishing and messaging between applications and
application components.
• android.database − Used to access data published by content providers and includes SQLite database
management classes.
• android.os − Provides applications with access to standard operating system services including
messages, system services and inter-process communication.
• android.widget − A rich collection of pre-built user interface components such as buttons, labels, list
views, layout managers, radio buttons etc.
Having covered the Java-based core libraries in the Android runtime, it is now time to turn our
attention to the C/C++ based libraries contained in this layer of the Android software stack.
Linux Kernel
Linux Kernel is heart of the android architecture. It manages all the available drivers such as display
drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are required during the
runtime. The Linux Kernel will provide an abstraction layer between the device hardware and the other
components of android architecture. It is responsible for management of memory, power, devices etc.
Security: The Linux kernel handles the security between the application and the system.
Memory Management: It efficiently handles the memory management thereby providing the freedom to
develop our apps.
Process Management: It manages the process well, allocates resources to processes whenever they need
them.
Network Stack: It effectively handles the network communication.
Driver Model: It ensures that the application works properly on the device and hardware manufacturers
responsible for building their drivers into the Linux build.
A client, which sends commands. The client runs on your development machine. You can invoke a
software development tools that allows the creation of applications for a certain software package,
software framework, hardware platform, computer system, video game console, operating system, or
similar development platform.
To create applications you have to download this software development kit. For example, if
you want to create an Android app you require an SDK with java programming, for iOS apps you
require an iOSSDK with swift language, and to develop MS Windows apps you require the .net language.
There are also SDKs that are installed in apps to provide analytics and data about activity. Prominent
examples include Google and Facebook.
get the incoming phone calls and text messages. It also gives the location of the device and simulates different
network speeds. Android emulator simulates rotation and other hardware sensors. It accesses the Google Play
store, and much more. It is used to create virtual devices of any desired API level to support higher level
SDK’s incase our device does not support. Using emulators to test the application is difficult as it might
be little slower when compared to real device Testing Android applications on emulator are sometimes
faster and easier than doing on a real device. For example, we can transfer data faster to the emulator
than to a real device connected through USB.
CHAPTER 3
SYSTEM DESIGN
3.1 DESIGN APPROACH
This project is based on the functional design approach, which helps in understanding the design of
the project in a simpler way by explaining its flow, use cases, and implementation more like a modular
approach. For example, there are different modules in this project which have separate functionality and,
other sub functionalities/modules. This module body treats data as nodes connected to each other;
however, it allows for more complex connections, such as many-to-many relationships and cycles. This
schema can model the movement of attributes and entities between locations, or the workflow required to
accomplish a particular task. Furthermore, this is a blueprint for how the outlook is going to be. The design
is an abstract structure or outlinethat represents the pictorial view of the application as a whole. By defining
categories of data and relationships between those categories design makes data much easier to retrieve,
consume, manipulate, and interpret. The schema design organizes the data into separate entities,
determines how to create relationships between organized entities, and how to apply the constraints on the
data. All the modules are designed, implemented and integrated together to make a flawless working
application.
• Button: One of the important components in which the application needs. It is mainly
associated with action when the user clicks it. We can represent the button using any text which
holds the action class on it.
• List View: This is a key component under the view group which helps in displaying the
informationabout anything when we click the action button. It also allows us to scroll through
the screen and have a look about the information displayed. Using the list adapter, the content
is pulled from the database.
• Toggle Button: This is a user interface control that is used to display ON (Checked) or OFF
(Unchecked) states as a button with a light indicator.
• Image View: Displays image resources, for example Bitmap or Drawable resources. Image View
is also commonly used to apply tints to an image and handle image scaling.
Layout - A layout defines the structure for a user interface in your app, such as in an activity. All
elementsin the layout are built using a hierarchy of View and View Group objects.
• Constraint Layout: This is a View Group which allows you to position and size widgets in a
flexible way.
• Relative Layout: This is a view group that displays child views in relative positions. The position
of each view can be specified as relative to sibling elements or in positions relative to the
parent Relative Layout area.
• Linear Layout: This is a view group that aligns all children in a single direction, vertically or
horizontally.
• Table Layout: This used to arrange the group of views into rows and columns. Table Layout
containers do not display a border line for their columns, rows or cells. A Table will have as
manycolumns as the row with the most cells.
CHAPTER 4
SYSTEM IMPLEMENTATION
System analysis to construct system elements that meet the stakeholder requirements And
system requirements developments development in the early life cycle phases. These system elements are
then integrated to form intermediate aggregates and finally the complete system of interest (SOI).
Implementation is the process that actually yields the lowest-level system elements in the system
hierarchy (system break down structure). System elements are made, bought or reused. Production involves
the hardware fabrication processes of forming, removing, joining and finishing. The software realization
process of coding and testing or operational procedures development processes for operator roles. If
implementation involves a production process a manufacturing system which uses the established
technical and management processes may be required. The purpose of implementation process is to
design and create (or fabricate) a system elements conforming to that elements design properties or
requirements. The element is constructed employing appropriate technologies and industry practices. The
process bridges the system definition processes and the integration process.
this.QUESTION = QUESTION;
}
}
Result
package com.example.quizfrag;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.Switch;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.quizfrag.data.DbHelper;
public class ResultActivity extends AppCompatActivity {
TextView txtPersonality,txtCareers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
txtPersonality=(TextView)findViewById(R.id.textResult);
txtCareers=(TextView)findViewById(R.id.textCareer);
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
int scoreM = sharedPref.getInt("scoreM", 0);
int scoreE = sharedPref.getInt("scoreE", 0);
int scoreN = sharedPref.getInt("scoreN", 0);
int scoreT = sharedPref.getInt("scoreT", 0);
String personalityType=testMind(scoreM)+testEnergy(scoreE)+testNature(scoreN)+testTactics(scoreT);
txtPersonality.setText( personalityType+personalityName(personalityType));
txtCareers.setText("We believe,these are the suitable careers for you"+personalityCareer(personalityType));
}
public String testMind(int mind)
{
int compare = 0;
if(mind > compare)
{ return "I"; }
else
{ return "E"; }
}
public String testEnergy(int energy)
{
int compare = 0;
if(energy > compare)
{ return "S"; }
else
{ return "N"; }
}
public String testNature(int nature)
{
int compare = 0;
if(nature > compare)
{ return "F"; }
else
{ return "T"; }
}
public String testTactics(int tactics)
{
int compare = 0;
if(tactics > compare)
{ return "P"; }
else
{ return "J"; }
}public String personalityName(String ptype){
switch(ptype) {
case "ISTJ": return "-The Inspector";
case "ISTP": return "-The Crafter";
case "ISFJ": return "-The Protector";
case "ISFP": return "-The Artist";
case "INFJ": return "-The Advocate";
case "INFP": return "-The Mediator";
case "INTJ": return "-The Architect";
case "INTP": return "-The Thinker";
case "ESTP": return "-The Persuader";
case "ESTJ": return "-The Director";
case "ESFP": return "-The Performer";
case "ESFJ": return "-The Caregiver";
case "ENFP": return "-The Champion";
case "ENFJ": return " - The Giver";
case "ENTP": return "-The Debater";
Geologist";
case "ESTP":
return "\n" + "\n" + " Computer support technician\n" + " Detectives\n" + " Entrepreneur\n" +
" Marketer\n" + " Paramedic\n" + " Police officer\n" + " Sales agent";
case "ESTJ":
return "\n" + "\n" + " Police officer\n" + " Military\n" + " Judge\n" + " Politician\n" +
" Teacher\n" + " School administrator\n" + " Business manager\n" + " Accountant\n" + "
Banker";
case "ESFP":
return "\n" + "\n" + " Artist\n" + " Actor\n" + " Counselor\n" + " Social worker\n" + " Athletic
coach\n" +
" Child care provider\n" + " Musician\n" + " Psychologist\n" + " Human resources
specialist\n" + " Fashion designer";
case "ESFJ":
return "\n" + "\n" + " Childcare\n" + " Nursing\n" + " Teaching\n" + " Social work\n" +
" Counseling\n" + " Physician\n" + " Receptionist\n" + " Bookkeeper\n" + " Office
manager";
case "ENFP":
return "\n" + "\n" + " Psychologist\n" + " Journalist\n" + " Actor\n" + " TV Anchor/Reporter\n" +
" Nutritionist\n" + " Nurse\n" + " Social Worker\n" + " Politician\n" + " Counselor";
case "ENFJ":
return "\n" + "\n" + " Counselor\n" + " Teacher\n" + " Psychologist\n" +
" Social worker\n" + " Human resources manager\n" + " Sales representative\n" + "
Manager";
case "ENTP":
return "\n" + "\n" + " Engineer\n" + " Lawyer\n" + " Scientist\n" +
" Psychologist\n" + " Inventor\n" + " Psychiatrist\n" + " Journalist";
default:
return "\n" + "\n" + " Human resources manager\n" + " Company CEO or manager\n" + " Lawyer\n"
+ " Scientist\n" +
" Software developer\n" + " Business analyst\n" + " Entrepreneur\n" + " University
professor";
}}}
CHAPTER 5
APPLICATION OUTPUT
CONCLUSION
FUTURE ENHANCEMENTS
The personality application market is growing and the developers need to be aware of all the new innovations
personality developments and application is less-known or used but it will be a very usefuland great success in
the near future. In the end, these applications are just like friends, the more we use them, the more benefits
we’ll get.
BIBLIOGRAPHY
TEXTBOOKS REFFERED
WEBSITES REFFERED
• https://www.geeksforgeeks.org
• https://www.youtube.com
• https://stackoverflow.com
• https://www.section.io
• https://www.codegrepper.com
• https://www.tutorialspoint.com