A Python wrapper for Stanford CoreNLP's SUTime
Project description
sutime
Python wrapper for Stanford CoreNLP's SUTime Java library.
Build Status
CircleCI Builds
PyPI
Code Quality
Installation
>> pip install setuptools_scm jpype1 # install pre-reqs
>> pip install sutime
>> # use package pom.xml to install all Java dependencies via Maven into ./jars
>> mvn dependency:copy-dependencies -DoutputDirectory=./jars
Run the following command to add the Spanish language model:
>> mvn dependency:copy-dependencies -DoutputDirectory=./jars -P spanish
Supported Languages
SUTime currently supports only English, British and Spanish (Source).
This Python wrapper is prepared to support the other CoreNLP languages (e.g. German) as well as soon as they get added to SUTime.
The following command can be used to download the language models for arabic
, chinese
, english
, french
, german
, and spanish
:
>> mvn dependency:copy-dependencies -DoutputDirectory=./jars -P <language>
However, SUTime only supports a subset (default model and spanish
) of CoreNLP's languages and the other language models will get ignored.
Example
import json
import os
from sutime import SUTime
if __name__ == '__main__':
test_case = u'I need a desk for tomorrow from 2pm to 3pm'
jar_files = os.path.join(os.path.dirname(__file__), 'jars')
sutime = SUTime(jars=jar_files, mark_time_ranges=True)
print(json.dumps(sutime.parse(test_case), sort_keys=True, indent=4))
Result:
[
{
"end": 26,
"start": 18,
"text": "tomorrow",
"type": "DATE",
"value": "2016-10-14"
},
{
"end": 42,
"start": 27,
"text": "from 2pm to 3pm",
"type": "DURATION",
"value": {
"begin": "T14:00",
"end": "T15:00"
}
}
]
Other examples can be found in the test directory.
Functions
SUTime(jars=None, jvm_started=False, mark_time_ranges=False, include_range=False,
jvm_flags=None, language='english')
"""
jars: List of paths to the SUTime Java dependencies.
jvm_started: Optional attribute to specify if the JVM has already been
started (with all Java dependencies loaded).
mark_time_ranges: Optional attribute to specify CoreNLP property
zodiac-sutime.markTimeRanges. Default is False.
"Tells zodiac-sutime to mark phrases such as 'From January to March'
instead of marking 'January' and 'March' separately"
include_range: Optional attribute to specify CoreNLP property
zodiac-sutime.includeRange. Default is False.
"Tells zodiac-sutime to mark phrases such as 'From January to March'
instead of marking 'January' and 'March' separately"
jvm_flags: Optional attribute to specify an iterable of string flags
to be provided to the JVM at startup. For example, this may be
used to specify the maximum heap size using '-Xmx'. Has no effect
if jvm_started is set to True. Default is None.
language: Optional attribute to select language. The following options
are supported: english (/en), british, spanish (/es). Default is
english.
"""
sutime.parse(input_str, reference_date=''):
"""Parses datetime information out of string input.
It invokes the SUTimeWrapper.annotate() function in Java.
Args:
input_str: The input as string that has to be parsed.
reference_date: Optional reference data for SUTime.
Returns:
A list of dicts with the result from the SUTimeWrapper.annotate()
call.
"""
Credit
- The team behind Stanford CoreNLP for their awesome work and tools for the NLP community
- Luis Nell (Github: originell) and team for maintaining JPype as interface between Python and Java
Contributions
- René Springer: Support for reference date
- Constantine Lignos: Support for JVM flags, adoption of CircleCI 2.0, fix for mutable default argument, fix for test execution
License
- GPLv3+ (check the LICENSE file)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file zodiac-sutime-1.0.0.tar.gz
.
File metadata
- Download URL: zodiac-sutime-1.0.0.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 518e76e3b8b7585e427cc5665a94d6538270c3e37d5a06d8ebb5007810c2c2e2 |
|
MD5 | 47aefa1defb2bfd59030f62003291443 |
|
BLAKE2b-256 | 50adb30f4840b12b972ec334f9abc66e7e27a6d05f083bcc6cf323710deca32f |