Book Image

Natural Language Processing with Java Cookbook

By : Richard M. Reese
Book Image

Natural Language Processing with Java Cookbook

By: Richard M. Reese

Overview of this book

Natural Language Processing (NLP) has become one of the prime technologies for processing very large amounts of unstructured data from disparate information sources. This book includes a wide set of recipes and quick methods that solve challenges in text syntax, semantics, and speech tasks. At the beginning of the book, you'll learn important NLP techniques, such as identifying parts of speech, tagging words, and analyzing word semantics. You will learn how to perform lexical analysis and use machine learning techniques to speed up NLP operations. With independent recipes, you will explore techniques for customizing your existing NLP engines/models using Java libraries such as OpenNLP and the Stanford NLP library. You will also learn how to use NLP processing features from cloud-based sources, including Google and Amazon Web Services (AWS). You will master core tasks, such as stemming, lemmatization, part-of-speech tagging, and named entity recognition. You will also learn about sentiment analysis, semantic text similarity, language identification, machine translation, and text summarization. By the end of this book, you will be ready to become a professional NLP expert using a problem-solution approach to analyze any sort of text, sentence, or semantic word.
Table of Contents (14 chapters)

Common Text Processing and Generation Tasks

Randomness is important in many areas of natural language processing (NLP). It is useful in assisting learning algorithms, making better predictions, and generating more accurate models. Randomness is found in the data used to train and evaluate models.

We will use the LanguageTool API to demonstrate how to perform the spell-checking and grammar- checking of a document. Both of these tasks can be useful for NLP activities. LanguageTool supports several languages.

With the very significant amount of data being generated, it is useful to have a way of summarizing text. We will illustrate one approach for performing this task utilizing the summarizer API found at https://github.com/piravp/auto-summarizer.

Dictionaries, as supported by the MAP interface, are used for many NLP tasks. We will illustrate how they can be inverted using POS data...