Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (
Help us improve Python packaging - Donate today!

Common Natural Language Processing Tasks for Python

Project Description

Semantic is a Python library for extracting semantic information from text, including dates, numbers, mathematical equations, and unit conversions.

For each of these four semantic types, semantic provides a service module. Typical usage often looks like this:

#!/usr/bin/env python
from semantic.dates import DateService

service = DateService()
date = service.extractDate("On March 3 at 12:15pm...")

The full documentation can be found here, while the source code itself is also available on GitHub.


Installing semantic is simple:

$ pip install semantic


semantic contains four main modules, each of which corresponds to a different semantic extractor.

Dates (

Useful for:

  • Extracting relative (e.g., “a week from today”) and absolute (e.g., “December 11, 2013”) dates from text snippets.
  • Converting date objects to human-ready phrasing.

Numbers (

Useful for:

  • Extracting numbers (integers or floats) from text snippets.
  • Converting numbers to human-readable strings.

Example usage:

#!/usr/bin/env python
from semantic.numbers import NumberService

service = NumberService()

print service.parse("Two hundred and six")
# 206

print service.parse("Five point one five")
# 5.15

print service.parse("Eleven and two thirds")
# 11.666666666666666

print service.parseMagnitude("7e-05")
# "seven to the negative five"

Math (

Useful for performing mathematical operations expressed as words.

Example usage:

#!/usr/bin/env python
from semantic.solver import MathService

service = MathService()

print service.parseEquation("Log one hundred and ten")
# 4.70048

Units (

Useful for converting between units expressed as words.

Example usage:

#!/usr/bin/env python
from semantic.units import ConversionService

service = ConversionService()

print service.convert("Seven and a half kilograms to pounds")
# (16.534, 'lbs')

print service.convert("Seven and a half pounds per square foot to kilograms per meter squared")
# (36.618, 'kg/m**2')


The test suite ( contains tons of examples and use-cases for each of the four modules.


The Dates, Numbers, and Math modules can run in isolation (i.e., without any dependencies), while the Units module requires quantities and Numpy.


MIT © Charles Marsh

Release History

Release History

This version
History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
semantic3-1.0.2.tar.gz (14.8 kB) Copy SHA256 Checksum SHA256 Source Jun 18, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting