Skip to main content

Common Natural Language Processing Tasks for Python

Project description

https://badge.fury.io/py/semantic.png

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.

Installation

Installing semantic is simple:

$ pip install semantic

Features

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

Dates (date.py)

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 (number.py)

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 (solver.py)

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 (units.py)

Useful for converting between units expressed as words.

Example usage:

#!/usr/bin/env python
from semantic.solver 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')

Testing

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

Requirements

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

License

MIT © Charles Marsh

Project details


Download files

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

Source Distribution

semantic-1.0.3.tar.gz (15.2 kB view details)

Uploaded Source

File details

Details for the file semantic-1.0.3.tar.gz.

File metadata

  • Download URL: semantic-1.0.3.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for semantic-1.0.3.tar.gz
Algorithm Hash digest
SHA256 bbc47dad03dddb1ba5895612fdfa1e43cfb3c497534976cebacd4f3684b505b4
MD5 78a150190e3e7d0f6f357b4c828e5f0d
BLAKE2b-256 0e0c3673f66b77b06aedb3df7ff1166cf34e0e7fceed86a343b3e75283e2b687

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page