Introduction
In this article, I will explain what we mean by "Human-Computer Interaction" and "Natural Language Processing".
What is the meaning of 'Human'?
According to britannica.com, a human being is a culture-bearing primate identified in the genus Homo, in specific the species H. Sapiens, guy. Human beings are anatomically identical and related to great apes, but they are characterized by a more finely evolved intellect and the subsequent ability to express expression and logical thought.
Some of the features of 'Human' are:
- ability to communicate systematically using words, symbols, body gestures/posture, and facial expressions.
- make our own decisions and bear the consequences of them.
- make and wear clothing, accessories, and other necessities for human life.
- become individuals in the process of making our own life in what each one of us wants to be in the future.
- think about thinking, to ponder on the past, present, and future.
- fit into different personality groups, but our experiences with the personality type are special and different within ourselves.
- fit into different racial, cultural, religious, and political groups.
- have a government or a governing body.
- being unique as an individual in our choices of who we want to be as a person, in our clothing, preferences, talents/gifts, perspectives, likes/dislikes.
- live in an economy.
- inherit our genes and behaviors from our parents, grandparents, aunts, uncles and our great grandparents.
- unique and special as a species.
What do we mean by 'Computer'?
According to Wikipedia, The device is a system that can be ordered to conduct sequences of arithmetic or logical operations automatically through computer programming. Modern computers have the capacity to control abstract collections of operations called programs. Such programs enable computers to conduct an incredibly large variety of tasks.
Some of the features are:
- Speed
In general, no human being can compete in solving complex computations, faster than a computer.
- Accuracy
Since the Computer is programmed, so whatever input we give it gives a result accurately.
- Storage
The computer can store mass storage of data with appropriate formate.
- Diligence
The computer can work for hours without any break and creating error.
- Versatility
We can use a computer to perform completely different types of work at the same time.
- Power Of Remembering
It can remember data for us.
- No IQ
The computer does not work without instruction.
- No Feeling
Computer does not have emotions, knowledge, experience, feel
What is Human-Computer Interaction?
According to Wikipedia, Human-machine interaction (HCI) explores the creation and application of digital technologies, concentrating on interactions between humans (users) and machines. HCI researchers are looking into how humans communicate with computers and develop systems that enable humans to connect with computers in a novel way. As a research area, human-interaction is located at the convergence of information science, behavioral sciences, architecture, media studies and a variety of other fields of analysis. The concept was popularized by Stuart K. Card, Allen Newell, and Thomas P. Moran in their 1983 novel 'The Neuroscience of Human-Computer Interaction'.
HCI may be readily grasped because it is the process or language with which we(' person') interact with the device(' machine') to take advantage of it in cases where person capacities fell short of computers, For Example, computers can perform complex arithmetic calculations very fast and much accurately, or machines never get tiered hence can be commissioned to work 24x7, etc.
Some common examples of HCI are Google Assistant/Voice App, Amazon Alexa, IBM Bluemix, Apple Siri, etc.
Goals of HCI
The goals of HCI are to produce usable and safe systems, as well as functional systems. In order o produce computer systems with good usability, developers must attempt to:
- understand the factors that determine how people use technology
- develop tools and techniques to enable building suitable systems
- achieve efficient, effective, and safe interaction
- put people first
Natural Language
According to Wikipedia, Throughout neuropsychology, linguistics and language theory, normal language or common language is any language that has spontaneously developed throughout humans by usage and experience without deliberate thought or premeditation. Natural languages may take various types, such as voice or signature.
Some examples of Natural language are English, Hindi, Sign Language, Brail, etc.
Natural Language Processing
According to Wikipedia, Natural Language Processing (NLP) is sub-in linguistics, computer science, information engineering, and artificial intelligence dealing with machine-(natural) language encounters, in particular how computers can be configured to handle and interpret vast quantities in natural language data.
Different types of Natural Language processing include:
- NLP based on Text, Voice and Audio.
- NLP based on computational models.
- NLP based on Text Analysis that leads to Discussion, Review, Opining, Contextual, Dictionary building/Corpus building, linguistic, semantics, ontological and many fields.
- Pattern Analysis and discovery of new insights such as writing styles.
- Machine Translation of languages.
- Machine Learning: e.g Prediction & Classification of positive, negative views.
- First Order logic
- Automatic Report Generation from Data.
Some of the common terms related to NLP and HCI:
1. Weka
According to Wikipedia, Waikato Environment for Knowledge Analysis (Weka), developed at the University of Waikato, New Zealand. This is free software available under the GNU General Public License and the accompanying program for the book "Data Mining: Practical Methods and Techniques for Machine Learning.
Weka includes a range of data processing and predictive modeling methods and algorithms, along with streamlined user interfaces for quick access to these functions. Weka's initial non-Java implementation was a Tcl / Tk front-end of (mostly third-party) simulation algorithms implemented in other programming languages, including C-based data pre-processing tools, and a Makefile-based machine learning application run method.
Advantages of Weka include:
- Free availability under the GNU General Public License.
- Portability, since it is fully implemented in the Java programming language and thus runs on almost any modern computing platform.
- A comprehensive collection of data preprocessing and modeling techniques.
- Ease of use due to its graphical user interfaces.
Weka can be downloaded by following the official Weka link.

The following images show how we load a dataset into the weka tool, the attribute window shows the list of attributes that are present in the dataset.

Weka provides various filters that can be applied to the dataset, to preprocess the dataset, and hence do the feature selection.
The following image shows the visualization of various features:

2. IBM Watson BlueMix

Image Courtesy: IBM
According to Wikipedia, Watson is a question-responding computer system capable of answering questions asked in natural language, developed by a research team led by lead researcher David Ferrucci in IBM's DeepQA project. Watson was named for the father of IBM and the first CEO, Thomas J. Watson, an industrialist.
Initially, the computer program was built to address questions about the Jeopardy quiz series! Yet Watson's computing program played on Jeopardy in 2011! Won the $1 million first-place award over Champions Brad Rutter and Ken Jennings.
Watson can be used to build a chatbot, official documentation can be found at this link:

Image Courtesy: IBM
According to Wikipedia, IBM Bluemix renamed IBM Cloud in 2017, is a cloud platform as a service (PaaS) established by IBM. This embraces growing programming languages and facilities, as well as DevOps implemented to develop, operate, deploy and handle cloud applications. Bluemix is free platform focused on Cloud Foundry which operates on the SoftLayer framework.
Bluemix supports many programming languages including Java, Node.js, Go, PHP, Swift, Python, Ruby Sinatra, Ruby on Rails and can be expanded to support other languages such as Scala by buildpacks.

Image Courtesy: IBM
3. Stemming
According to Wikipedia, In linguistic morphology and knowledge retrieval, stemming is the method of reducing inflected (or often derived) words to their word source, foundation or root type — usually written word type. The stem does not have to be equivalent to the morphological root of the word; it is generally appropriate that the associated terms map to the same stem, even though the stem itself is not a true root. Stemming algorithms have been researched in computer science since the 1960s. Often search engines view terms of the same stem as synonyms as a form of question extension, a mechanism called conflation.
>
A machine system or subroutine comprising a term can be named a stemming method, a stemming algorithm, or a stemmer.
For example, give the sentence:
"I will be stemming the given sentence so that I could retrieve the stem(s).'
If I pass it to PorterStemmer it will result:
['I', 'will', 'be', 'stem', 'the', 'given', 'sentenc', 'so', 'that', 'I', 'could', 'retriev', 'the', 'stem', '(', 's', ')', '.'].
it can be easily seen that "stemming" will result in "stem".
Various Stemming algorithms available are,
- Porter Stemming
- Lovins Stemming
- Dawson Stemming
- Krovetz Stemming
- Xerox Stemming
- N-Gram Stemming
To better understand stemming you can visit.
4. Porter2 Stemming Algorithm
Porter's algorithm consists of 5 phrases of word reduction, applied sequentially. Within each phrase, there are various conventions to select rules, such as selecting rule from each group that applies to the longest suffix. In the first phase, this convention is used within the following rule group:
SSES ---> SS caresses ---> caress
IES ---> I ponies ---> poni
SS ---> SS caress ---> caress
S ---> cats ---> cats
At the command line:
- easy_install porter2stemmer
- mkvirtualenv porter2stemmer$ pip install porter2stemmer
Or, another way, is:
- firefox <https://pypi.python.org/pypi/stemming/1.0>
- # DOWNLOAD THE stemming-1.0.tar.gz (md5)
- mv /home/downloads/[package] /home/speech_recognition/
- tar -xvfz [package]
- sudo python setup.py install
Example:
- import nltk
- from nltk.stem.porter import *
- porterStemmer = PorterStemmer()
- sentence = "Provision Maximum multiply owed caring on go gone going was this"
- wordList = nltk.word_tokenize(sentence)
- stemWords = [porterStemmer.stem(word) for word in wordList]
- print(' '.join(stemWords))
provis maximum multipli owe care on go gone go wa thi





Join the conversation! Your thoughts help the community grow.