Skip to main content

DSL for building language rules

Project description

RITA DSL

Documentation Status codecov made-with-python Maintenance PyPI version fury.io PyPI download month GitHub license

This is a language, loosely based on language Apache UIMA RUTA, focused on writing manual language rules, which compiles into either spaCy compatible patterns, or pure regex. These patterns can be used for doing manual NER as well as used in other processes, like retokenizing and pure matching

An Introduction Video

Intro

Links

Support

reddit Gitter

Install

pip install rita-dsl

Simple Rules example

rules = """
cuts = {"fitted", "wide-cut"}
lengths = {"short", "long", "calf-length", "knee-length"}
fabric_types = {"soft", "airy", "crinkled"}
fabrics = {"velour", "chiffon", "knit", "woven", "stretch"}

{IN_LIST(cuts)?, IN_LIST(lengths), WORD("dress")}->MARK("DRESS_TYPE")
{IN_LIST(lengths), IN_LIST(cuts), WORD("dress")}->MARK("DRESS_TYPE")
{IN_LIST(fabric_types)?, IN_LIST(fabrics)}->MARK("DRESS_FABRIC")
"""

Loading in spaCy

import spacy
from rita.shortcuts import setup_spacy


nlp = spacy.load("en")
setup_spacy(nlp, rules_string=rules)

And using it:

>>> r = nlp("She was wearing a short wide-cut dress")
>>> [{"label": e.label_, "text": e.text} for e in r.ents]
[{'label': 'DRESS_TYPE', 'text': 'short wide-cut dress'}]

Loading using Regex (standalone)

import rita

patterns = rita.compile_string(rules, use_engine="standalone")

And using it:

>>> list(patterns.execute("She was wearing a short wide-cut dress"))
[{'end': 38, 'label': 'DRESS_TYPE', 'start': 18, 'text': 'short wide-cut dress'}]

Special Thank You

Special thanks goes to

JetBrains

for supporting development of this library

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

rita-dsl-0.5.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rita_dsl-0.5.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file rita-dsl-0.5.0.tar.gz.

File metadata

  • Download URL: rita-dsl-0.5.0.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.6.9 Linux/5.3.0-1028-azure

File hashes

Hashes for rita-dsl-0.5.0.tar.gz
Algorithm Hash digest
SHA256 b0ba27f69deb3348caa7d6c4a5ddc26b8c55ca05e35c58164246ba322c43ce3e
MD5 8766cdc68c7d87d6ee740648da39a7bd
BLAKE2b-256 42c673ff68a899cb25b4032492feacb66422d9a929304b56b6c108c0384b2e4c

See more details on using hashes here.

File details

Details for the file rita_dsl-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: rita_dsl-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.6.9 Linux/5.3.0-1028-azure

File hashes

Hashes for rita_dsl-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df17c5f1647b8fca023aea7c9188a0441adfbc86ad211c987fcd3e64c1c087a2
MD5 9bdb0c1fd0d3dc6026e3e2a8afcc1c10
BLAKE2b-256 3eccfdc004fb5241b425b72d6b18e39be68ea90a5dbc7754038842e3c59780ab

See more details on using hashes here.

Supported by

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