Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDelphiRAD Studio

Natural Language Processing: 5 Ways To Use NLP In Your Windows Apps

7

How do I start using Natural Language Processing in Windows?

Natural language processing (NLP) is a subfield of Linguistics, Computer Science, and Artificial Intelligence which concerned with the interactions between computers and human language, in particular, how to program computers to process and analyze large amounts of natural language data, or teaching machines how to understand human languages and extract meaning from text.

The common tasks in NLP include Text Mining, Text Classification, Text Analysis, Sentiment Analysis, Word Sequencing, Speech Recognition & Generation, Machine Translation, and Dialog Systems, to name a few.

Since NLP relies on advanced computational skills and tools, developers need the best available tools to help them to make the most of NLP approaches and algorithms for creating services that can handle natural languages.

We can build Windows apps with Natural Language Processing capabilities using Embarcadero’s Python4Delphi (P4D). P4D empowers Python users with Delphi’s award-winning VCL functionalities for Windows which enables us to build native Windows apps 5x faster. This integration enables us to create a modern GUI with Windows 10 looks and responsive controls for our Python Natural Language Processing applications.

Python4Delphi makes it very easy to use Python as a scripting language for Delphi applications. It also comes with an extensive range of demos and tutorials. With Python4Delphi, you can integrate any Python features, functionalities, and libraries with Delphi to create a nice GUI for your Natural Language Processing applications in Windows.

In this tutorial, we will discuss the following:

How to use these 5 Python libraries with different Natural Language Processing capabilities to perform Natural Language Processing in Windows Apps: NLTK, FlashText, Gensim, TextBlob, and spaCy.

All of them would be integrated with Python4Delphi to create Windows Apps with Natural Language Processing capabilities.

Prerequisites: Before we begin to work, download and install the latest Python for your platform. Follow the Python4Delphi installation instructions mentioned here. Alternatively, you can check out the easy instructions found in the Getting Started With Python4Delphi video by Jim McKeeth.

Time to get started!

First, open and run our Python GUI using project Demo01 from Python4Delphi with RAD Studio. Then insert the script into the lower Memo, click the Execute script button, and get the result in the upper Memo. You can find the Demo01 source on GitHub. The behind the scene details of how Delphi manages to run your Python code in this amazing Python GUI can be found at this link.

Using Python4Delphi for Natural Language Processing
Open Demo01dproj

1. How do I enable NLTK for NLP inside Python4Delphi in Windows?

NLTK is a leading platform for building Python programs to work with human language data. Natural Language Processing or NLP for short — in a wide sense, to cover any kind of computer manipulation of natural language. NLP is a field in Machine Learning with the ability of a computer to understand, analyze, manipulate, and potentially generate human language.

NLTK provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-strength NLP libraries, and an active discussion forum.

Do you want to perform Natural Language Processing tasks like predicting text, analyzing & visualizing sentence structure, Sentiment Analysis, gender classification, etc. in the Windows GUI app? You can easily solve these tasks by combining the NLTK library with Python4Delphi (P4D).

This section will show you how to get started using NLTK combined with Python4Delphi!

Getting and installing NLTK

First, here is how you can get NLTK:

Practical work in Natural Language Processing typically uses large bodies of linguistic data or corpora. You can add the popular NLTK datasets to your system using this command:

and don’t forget to put the path where your NLTK installed, to the System Environment Variables, here are the example:

Using NLTK for Python Natural Language Processing

The following is a code example of NLTK to create a classifier app that could predict gender from the people’s name as input (run this inside the lower Memo of Python4Delphi Demo01 GUI):

Here is the result in the Python GUI

Natural Language Processing Demo with Python4Delphi in Windows
NLTK Demo with Python4Delphi in Windows

Read more: https://pythongui.org/quickly-build-a-python-gui-app-with-powerful-natural-language-processing-capabilities-using-nltk-library-in-a-delphi-windows-app/

2. How do I use FlashText for NLP inside Python4Delphi on Windows?

FlashText is a module that can be used to replace keywords in sentences or extract keywords from sentences. It is based on the FlashText algorithm.

FlashText algorithm is an algorithm for replacing keywords or finding keywords in a given text. FlashText can search or replace keywords in one pass over a document.

Do you want to perform Natural Language Processing tasks like replacing or extracting words in a text, in the Windows GUI app? This section will show you how to get started!

Getting and installing FlashText

First, here is how you can get FlashText:

Using FlashText for Python Natural Language Processing

The following is an introductory example of FlashText to perform keyword extraction, replacing keywords, and case sensitive (run this inside the lower Memo of Python4Delphi Demo01 GUI):

Here is the FlashText code in the Python GUI

FlashText Demo using Python4Delphi for Natural Language Processing on Windows
FlashText Demo with Python4Delphi in Windows

3. How do I enable Gensim for Natural Language Processing inside Python4Delphi on Windows?

Gensim is an open-source library for Unsupervised Topic Modeling and Natural Language Processing, using Modern Statistical Machine Learning. Gensim has been used and cited in over 1400 commercial and academic applications as of 2018, in a diverse array of disciplines from medicine to insurance claim analysis to patent search.

Design principles of Gensim:

  • Practicality – As industry experts, they focus on proven, battle-hardened algorithms to solve real industry problems. More focus on engineering, less on academia.
  • Memory independence – There is no need for the whole training corpus to reside fully in RAM at any one time. Can process large, web-scale corpora using data streaming.
  • Performance – Highly optimized implementations of popular vector space algorithms using C, BLAS and memory-mapping.

By now, Gensim is known to be the most robust, efficient and hassle-free piece of software to realize unsupervised semantic modeling from plain text.

Getting and installing Gensim

This section will guide you to combine Python4Delphi with the Gensim library, inside Delphi and C++Builder, from installing Gensim with pip to perform similarity queries tasks.

First, here is how you can get Gensim:

Using Gensim for Python Natural Language Processing

The following is a code example of Gensim to perform similarity queries (run this inside the lower Memo of Python4Delphi Demo01 GUI):

Gensim Python4Delphi results

Using Gensim Demo with Python4Delphi in Windows for Natural Language Processing
Gensim Demo with Python4Delphi in Windows

4. How do I use TextBlob for NLP inside Python4Delphi in Windows?

TextBlob is a Python library for processing textual data. It provides a simple and consistent API for diving into common Natural Language Processing (NLP) tasks such as part-of-speech tagging, noun phrase extraction, sentiment analysis, classification, translation, and more.

Here are TextBlob powerful features at  a glance:

  • Noun phrase extraction
  • Part-of-speech tagging (POS tagging)
  • Sentiment analysis
  • Classification (Naive Bayes, Decision Tree)
  • Tokenization (splitting text into words and sentences)
  • Word and phrase frequencies
  • Parsing
  • n-grams
  • Word inflection (pluralization and singularization) and lemmatization
  • Spelling correction
  • Add new models or languages through extensions
  • WordNet integration

First, here is how you can get TextBlob

Using TextBlob for Python Natural Language Processing

The following is a code example of TextBlob to perform part-of-speech (POS) tagging, noun phrase extraction, and sentiment analysis (run this inside the lower Memo of Python4Delphi Demo01 GUI):

TextBlob Natural Language Processing Result

TextBlob Demo with Python4Delphi in Windows to show how to use Python4Delphi for Natural Language Processing
TextBlob Demo with Python4Delphi in Windows

5. How do I enable spaCy for NLP inside Python4Delphi in Windows?

spaCy is a free, open-source library for advanced Natural Language Processing (NLP) in Python. It’s designed specifically for production use and helps you build applications that process and “understand” large volumes of text. It can be used to build information extraction or natural language understanding systems.

Here are spaCy powerful features overview:

  • Support for 64+ languages
  • 55 trained pipelines for 17 languages
  • Multi-task learning with pre-trained transformers like BERT
  • Pretrained word vectors
  • State-of-the-art speed
  • Production-ready training system
  • Linguistically-motivated tokenization
  • Components for named entity recognition, part-of-speech tagging, dependency parsing, sentence segmentation, text classification, lemmatization, morphological analysis, entity linking, and more
  • Easily extensible with custom components and attributes
  • Support for custom models in PyTorch, TensorFlow, and other frameworks
  • Built-in visualizers for syntax and NER
  • Easy model packaging, deployment, and workflow management
  • Robust, rigorously evaluated accuracy

Installing spaCy for Natural Language Processing

Download trained pipeline here:

A spaCy Python code example

The following is a code example of spaCy to analyze syntax, find named entities, phrases and concepts to any given documents (run this inside the lower Memo of Python4Delphi Demo01 GUI):

Using Python and spaCy Natural Language Processing

spaCy Demo with Python4Delphi in Windows Using Python4Delphi for Natural Language Processing
spaCy Demo with Python4Delphi in Windows

Want to know some more? Then check out Python4Delphi which easily allows you to build Python GUIs for Windows using Delphi.


References & further readings

[1] @kulkarnimahesh321. (2022). 

Python | Gender Identification by name using NLTK. GeeksforGeeks. geeksforgeeks.org/python-gender-identification-by-name-using-nltk

[2] Singh, V. (2017). 

Replace or retrieve keywords in documents at scale. arXiv preprint arXiv:1711.00046

[3] Řehůřek, R. (2009-2024).

Similarity Queries. Gensim documentation. radimrehurek.com/gensim/auto_examples/core/ run_similarity_queries.html

[4] Loria, S. and all TextBlob contributors. (2013-2024) 

TextBlob: Simplified Text Processing. TextBlob documentation. textblob.readthedocs.io/en/dev

[5] Explosion. (2016-2024)

spaCy 101: Everything you need to know. spaCy documentation. Explosion. spacy.io/usage/spacy-101

[6] Hakim, M. A. (2021). 

Article02 – 5 Python’s Natural Language Processing Libraries. embarcaderoBlog-repo GitHub. github.com/MuhammadAzizulHakim/ embarcaderoBlog-repo/tree/main/Article02%20-%205%20Python’s%20Natural%20Language %20Processing%20Libraries

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

2 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES