Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Python wrapper for Stanford CoreNLP's SUTime

License

NotificationsYou must be signed in to change notification settings

FraBle/python-sutime

Repository files navigation

Python wrapper for Stanford CoreNLP'sSUTime Java library.
Docs are also hosted onGitHub Pages.

Build Status

Travis CI Builds

Travis CI

PyPI

PyPI VersionPyPI Downloads

Code Quality

Codacy BadgeScrutinizerCoverity ScanCode Climate maintainabilityCodeFactorRequirements Status

Installation

>># Ideally, create a virtual environment before installing any dependencies>> pip install sutime>># Install Java dependencies>> mvn dependency:copy-dependencies -DoutputDirectory=./jars -f$(python3 -c'import importlib; import pathlib; print(pathlib.Path(importlib.util.find_spec("sutime").origin).parent / "pom.xml")')

Append-P spanish to themvn command to include the Spanish language model.

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 forarabic,chinese,english,french,german, andspanish:

>> mvn dependency:copy-dependencies -DoutputDirectory=./jars -f$(python -c'import importlib; import pathlib; print(pathlib.Path(importlib.util.find_spec("sutime").origin).parent / "pom.xml")') -P<language>

However, SUTime only supports a subset (default model andspanish) of CoreNLP's languages and the other language models will get ignored.

Example

importjsonfromsutimeimportSUTimeif__name__=='__main__':test_case='I need a desk for tomorrow from 2pm to 3pm'sutime=SUTime(mark_time_ranges=True,include_range=True)print(json.dumps(sutime.parse(test_case),sort_keys=True,indent=4))

Result:

[    {"end":26,"start":18,"text":"tomorrow","timex-value":"2020-11-03","type":"DATE","value":"2020-11-03"    },    {"end":42,"start":27,"text":"from 2pm to 3pm","type":"DURATION","value": {"begin":"T14:00","end":"T15:00"        }    }]

Other examples can be found in thetest directory.

Functions

SUTime(jars:Optional[str]=None,jvm_started:Optional[bool]=False,mark_time_ranges:Optional[bool]=False,include_range:Optional[bool]=False,jvm_flags:Optional[List[str]]=None,language:Optional[str]='english',):"""    Args:        jars (Optional[str]): Path to previously downloaded SUTime Java            dependencies. Defaults to False.        jvm_started (Optional[bool]): Flag to indicate that JVM has been            already started (with all Java dependencies loaded). Defaults            to False.        mark_time_ranges (Optional[bool]): SUTime flag for            sutime.markTimeRanges. Defaults to False.            "Whether or not to recognize time ranges such as 'July to            August'"        include_range (Optional[bool]): SUTime flag for            sutime.includeRange. Defaults to False.            "Whether or not to add range info to the TIMEX3 object"        jvm_flags (Optional[List[str]]): List of flags passed to JVM. For            example, this may be used to specify the maximum heap size            using '-Xmx'. Has no effect if `jvm_started` is set to True.            Defaults to None.        language (Optional[str]): Selected language. Currently supported            are: english (/en), british, spanish (/es). Defaults to            `english`.    """sutime.parse(input_str:str,reference_date:Optional[str]='')->List[Dict]:"""Parse datetime information out of string input.    It invokes the SUTimeWrapper.annotate() function in Java.    Args:        input_str (str): The input as string that has to be parsed.        reference_date (Optional[str]): Optional reference data for SUTime.            Defaults to `''`.    Returns:        A list of dicts with the result from the `SUTimeWrapper.annotate()`        call.    Raises:        RuntimeError: An error occurs when CoreNLP is not loaded.    """

Credit

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
  • Cole Robertson: Updated instructions, JAR requirements, and SUTime JAR imports
  • Ludovico Pestarino: Modified json.loads for compatibility with json data (string handling)

License

  • GPLv3+ (check the LICENSE file)

About

Python wrapper for Stanford CoreNLP's SUTime

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors8


[8]ページ先頭

©2009-2025 Movatter.jp