What are some of the little things your parents did for you that made the biggest impact?

Standard

This answer was originally published by me on Quora, answering the question :

What are some of the little things your parents did for you that made the biggest impact?

And here is my response :

“When I was a kid my parents bought me these books :

World Book Encyclopedia

The World Book of Encyclopedia, I remember I was so excited the day we brought this books from a friend of my father. From that day I would daily open up each letter and just scan through it, it was so addictive. These books were like some treasure chest with information more than I could ever consume. At that time this was my Wikipedia (We didn’t have internet at that time). The pictures and illustration in it were so beautiful and informative. If anyone has these then they know the illustrations of Human Body had different transparent pages and with each page you can see different aspect/layers of your body (if you want I can upload pictures) or the Animals with detailed illustration and information. I have spent a huge deal of my childhood in these books. This greatly improved my research skills. If you had to search for a specific topic then you also had to search for the related topics.
We later bought another book :

Concise Atlas

Concise Atlas of the World from a door to door seller. It had maps of every country and I would sit for hours looking at them wondering what would actually be there at those places. It was the Google Maps for me.
I also remember my father reading us Bhagavad Gita, Gramgeeta and Manache Shlok every evening. He would read those verses and explain us each verse. It was just like a part of our curriculum. My brother and I would wait eagerly for these reading sessions and no matter how tired he was we would make him read at least half a page. He would explain them with real life stories with some funny jokes here and there. I never understood its importance at that time…we just did it because it was fun. But now I understand how it made me and my brother better citizens and gave us the ability to differentiate between right and wrong. 

I know now and appreciate how my father was foresighted.”

Read it on Quora.

A Cognitive study of Lexicons in Natural Language Processing.

Standard

What are Lexicons ?

A word in any language is made of a root or stem word and an affix. These affixes are usually governed by some rules called orthographic rules. These orthographic rules define the spelling rules for a word composition in Morphological Parsing phase. A lexicon is a list of such stem words and affixes and is a vital requirement to construct a Morphological Parser. Morphological parsing involves building up or breaking down a structured representation of component morphemes to form a meaningful word or a stem word. It is a necessary phase in spell checking, search term disambiguation in Web Search engines, part of speech tagging, machine translation.

A simple lexicon would usually just consist of a list of every possible word and stem + affix combination in the language. But this is an inconvenient approach in real-time applications as search and retrieval of a specific word would become a challenge owing to the unstructured format of the lexicon. If a proper structure is provided to the lexicon consisting of the stem and affixes then building a word from this lexicon becomes bit simple. So, what kind of structure are we talking about here ? The most common structure used in morphotactics modeling is the Finite-State Automaton.

Let us look at a simple finite-state model for English nominal inflection:

fsm

Finite State Model for English nominal inflection

As stated in this FSM the regular noun is our stem word and is concatenated with plural suffix –s, 

eg. regular_noun(bat) + plural_suffix(s) = bats

Now this FSM will fail at some exceptions like : foot => feet, mouse => mice, company => companies, etc. This is where orthographic rules come in action. It defines these specific spelling rules for particular a stem which is supposed to be the exception. According to this, the FSM can be improved.

Cognitive Computing :

” It addresses complex situations that are characterized by ambiguity and uncertainty; in other words it handles human kinds of problems.”

Cognitive Computing Consortium

“Cognitive computing refers to systems that learn at scale, reason with purpose and interact with humans naturally. Rather than being explicitly programmed, they learn and reason from their interactions with us and from their experiences with their environment.”

– Dr. John E. Kelly III; Computing, cognition and the future of knowing, IBM.

Or simple we can say:

“Cognitive computing is the simulation of human thought processes in a computerized model. Cognitive computing involves self-learning systems that use data mining, pattern recognition and natural language processing to mimic the way the human brain works. The goal of cognitive computing is to create automated IT systems that are capable of solving problems without requiring human assistance.”

Techtarget

If cognitive computing is the simulation of human thought process in a computerized model, then this solves most of our ambiguity issues faced in Natural Language Processing. Let us first try to reason how a human mind tries to resolve ambiguity in Morphological Parsing.

How does our human mind constructs its Mental Lexicons ?

Let us say I give you a word – ‘cat’. The human brain immediately recognizes that given word is a noun relating to a cute little animal with fur. It also is able to recall its pronunciation. But sometimes it is unable to recognize the given word and recall all the information relating to it, say for example if you see the word ‘wug’, your mind might be able to figure out its pronunciation but it would fail to label a part of speech to it or assign a meaning to it. But if I tell you that it is a Noun and is a small creature, you can use it in a sentence and you would know its Part of Speech, eg. “I saw a wug today.”

Similarly, a word like ‘cluvious’ even if you don’t know its meaning, you may be able to infer some information about it because most words in English that have this form are Adjectives (ambitious, curious, anxious, envious…). Which might help you predict their meaning when the occur in sentences, example “You look cluvious today”. From the example sentence, one can easily interpret that ‘cluvious’ informs about the physical appearance of an entity.

You can even reason about words that you haven’t seen before, like ‘traftful’ and ‘traftless’ and figure out that they are most likely opposites. This is because the given pair of words resembles with many pairs of words in English that have this particular structure and an antonym relationship.

With the observations stated as above one can build a Morphological Parser with higher efficiency. You can also read my other post on how to set up Natural Language Processing environment in Python.

Further Reading:

Configuring IntelliJ IDEA for Electron

Standard

In the last blog post on Setting Up Electron Framework for Desktop Apps, we talked about Electron framework and its installation, we also tried a “Hello World” example in Electron. This post will a short one and will help you to configure Electron in an IDE – IntelliJ IDEA 2016.

Let’s get started with our configuration, first thing is making sure you are using JavaScript ECMAScript 6. Go to File > Settings > Languages and Frameworks > JavaScript and select ECMAScript 6. Now we need to install the JavaScript library for Electron called github-electron-DefinitelyTyped. This can be done by heading over to,

File > Settings > Languages and Frameworks > JavaScript > Libraries > (Select) Download.

After all the libraries are loaded search for github-electron-DefinitelyTyped  and download and install it. After that check / select that library.

settings_007

To enable “Coding Assistance” go to File > Settings > Languages and Frameworks > Node.js and NPM > Enable the Coding Assistance for Node.js Core Library.

Run/Debug Configuration:

Select a Node.js run configuration. In the Node interpreter, give the path to the Electron executable. Also, in JavaScript file field give the path your main JavaScript file in the project and save this configuration and Run.

run-debug-configurations_008

Here’s a great Material Design desktop app I made with Electron Framework. In case you are wondering, I used Material Design Lite library for Material Design components.

This slideshow requires JavaScript.

Fork this app on Github:

image4233

Read my other post on Setting Up Electron Framework for Desktop Apps. Download the best IDE in town here at JetBrains IntelliJ IDEA.