Book Image

Natural Language Processing with Java - Second Edition

By : Richard M. Reese
Book Image

Natural Language Processing with Java - Second Edition

By: Richard M. Reese

Overview of this book

Natural Language Processing (NLP) allows you to take any sentence and identify patterns, special names, company names, and more. The second edition of Natural Language Processing with Java teaches you how to perform language analysis with the help of Java libraries, while constantly gaining insights from the outcomes. You’ll start by understanding how NLP and its various concepts work. Having got to grips with the basics, you’ll explore important tools and libraries in Java for NLP, such as CoreNLP, OpenNLP, Neuroph, and Mallet. You’ll then start performing NLP on different inputs and tasks, such as tokenization, model training, parts-of-speech and parsing trees. You’ll learn about statistical machine translation, summarization, dialog systems, complex searches, supervised and unsupervised NLP, and more. By the end of this book, you’ll have learned more about NLP, neural networks, and various other trained models in Java for enhancing the performance of NLP applications.
Table of Contents (19 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Deep learning for Java


Deep learning is a part of machine learning that is a subset of AI. Deep learning is inspired by the functioning of the human brain in its biological form. It uses terms such as neurons in creating neural networks, which can be part of supervised or unsupervised learning. Deep learning concepts are widely applied in fields of computer vision, speech recognition, NLP, social network analysis and filtering, fraud detection, predictions, and so on. Deep learning proved itself in the field of image processing in 2010 when it outperformed all others in an image net competition, and now it has started to show promising results in NLP. Some of the areas where deep learning has performed very well include Named Entity Recognition (NER), sentiment analysis, POS tagging, machine translation, text-classification, caption-generation, and question-answering.

 

This excellent read can be found in Goldbergs work at https://arxiv.org/abs/1510.00726. There are various tools and libraries available for deep learning. The following is a list of libraries to get you started:

  • Deeplearning4J (https://deeplearning4j.org/): It is an open source, distributed, deep learning library for JVM.
  • Weka (https://www.cs.waikato.ac.nz/ml/weka/index.html): It is known as a data-mining software in Java and has a collection of machine learning algorithms that support preprocessing, prediction, regression, clustering, association rules, and visualization.
  • Massive Online Analysis (MOA) (https://moa.cms.waikato.ac.nz/): Used on realtime streams. Supports machine learning and data mining.
  • Environment for Developing KDD-Applications Supported by Index Structures (ELKI) (https://elki-project.github.io/): It is a data-mining software that focuses on research algorithms, with an emphasis on unsupervised methods in cluster-analysis and outlier-detection.
  • Neuroph (http://neuroph.sourceforge.net/index.html): It is a lightweight Java neural network framework used to develop neural network architectures licensed under Apache Licensee 2.0. It also supports GUI tools for creating and training data sets.
  • Aerosolve (http://airbnb.io/aerosolve/): It is a machine learning package for humans, as seen on the web. It is developed by Airbnb and is more inclined toward machine learning.

You can find approximately 366 repositories on GitHub (https://github.com/search?l=Java&q=deep+learning&type=Repositories&utf8=%E2%9C%93) for deep learning and Java.