Common Natural Language Processing Tasks for Python
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.
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.
Extracting numbers (integers or floats) from text snippets.
Converting numbers to human-readable strings.
#!/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"
Useful for performing mathematical operations expressed as words.
#!/usr/bin/env python from semantic.solver import MathService service = MathService() print service.parseEquation("Log one hundred and ten") # 4.70048
Useful for converting between units expressed as words.
#!/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')
The test suite (test.py) 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
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.