Menu Sidebar

Author: bogdani

Language Models

Language models

If you come from a statistical background or a machine learning one then probably you don’t need any reasons for why it’s useful to build language models. If not, here’s what language models are and why they are useful. What is a model? Generally speaking, a model (in the statistical sense of course) is a […]

Natural Language Processing Corpora

Natural Language Processing Corpora

One of the reasons why it’s so hard to learn, practice and experiment with Natural Language Processing is due to the lack of available corpora. Building a gold standard corpus is seriously hard work. That’s why resources are so scarce or cost a lot of money. In this post, I’m going to aggregate some cool […]

Introduction to Python NLTK

Introduction to NLTK

NLTK (Natural Language ToolKit) is the most popular Python framework for working with human language. There’s a bit of controversy around the question whether NLTK is appropriate or not for production environments. Here’s my take on the matter: NLTK doesn’t come with super powerful trained models (like other frameworks do, like Stanford CoreNLP) NLTK is […]


Weighting words using Tf-Idf

If I ask you “Do you remember the article about electrons in NY Times?” there’s a better chance you will remember it than if I asked you “Do you remember the article about electrons in the Physics books?”. Here’s why: an article about electrons in NY Times is far less common than in a collection […]

Performance metrics graph

Classification Performance Metrics

Throughout this blog, we seek to obtain good performance on our classification tasks. Classification is one of the most popular tasks in Machine Learning. Be sure you understand what classification is before going through this tutorial. You can check this Introduction to Machine Learning, specially created for hackers. Since we’re always concerned with how well […]

Splitting text into sentences

Splitting text into sentences

Few people realise how tricky splitting text into sentences can be. Most of the NLP frameworks out there already have English models created for this task. You might encounter issues with the pretrained models if: You are working with a specific genre of text(usually technical) that contains strange abbreviations. You are working with a language […]

Natural Language Processing - Introduction

What is Natural Language Processing?

This is probably the first post I should have written on the blog. The thing is, I did machine learning and natural language processing for a long time before putting the concepts in order inside my own mind. I’ve learned techniques and hacks to boost precision of classifiers before fully understanding how a classifier computes […]

Introduction to Sentiment Analysis

Getting Started with Sentiment Analysis

What is sentiment analysis The most direct definition of the task is: “Does a text express a positive or negative sentiment?”. Usually, we assign a polarity value to a text. This value is usually in the [-1, 1] interval, 1 being very positive, -1 very negative. Why is sentiment analysis useful Sentiment analysis can have […]


Training a NER System Using a Large Dataset

In a previous article, we studied training a NER (Named-Entity-Recognition) system from the ground up, using the Groningen Meaning Bank Corpus. This article is a continuation of that tutorial. The main purpose of this extension is to: Replace the classifier with a Scikit-Learn Classifier Train a NER on a larger subset of the training data […]

Older Posts