Skip to main content
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

Metadata

Release files for semantic 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for semantic 1.0.3
File Size Uploaded
semantic-1.0.3.tar.gz 15.2 kB Details

Release files / semantic-1.0.3.tar.gz

Download URL semantic-1.0.3.tar.gz
Size 15.2 kB
Tags Source
SHA-256 checksum
How to use checksums
bbc47dad03dddb1ba5895612fdfa1e43cfb3c497534976cebacd4f3684b505b4
BLAKE2b-256 checksum
How to use checksums
0e0c3673f66b77b06aedb3df7ff1166cf34e0e7fceed86a343b3e75283e2b687
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.3 This release

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page