Skip to main content

Build and match patterns for semantic role labelling

Project description

d# Role Pattern

Build and match linguistic patterns for role labelling. Provides an example-driven approach to generate and refine patterns.

Uses graph-based pattern matching, built on SpaCy.

Installation

With pip:

pip install role-pattern-nlp

Example usage

# First, parse a string to create a SpaCy Doc object
import en_core_web_sm
text = "Forging involves the shaping of metal using localized compressive forces."
nlp = en_core_web_sm.load()
doc = nlp(text)

from role_pattern_nlp import RolePatternBuilder

# Provide an example by mapping role labels to tokens
match_example = {
    'arg1': [doc[0]],  # [Forging]
    'pred': [doc[1]],  # [involves]
    'arg2': [doc[3]],  # [shaping]
}

''' Create a dictionary of all the features we want the RolePatternBuilder to have access to
when building and refining patterns '''
feature_dict = {'DEP': 'dep_', 'TAG': 'tag_'}

# Instantiate the pattern builder
role_pattern_builder = RolePatternBuilder(feature_dict)

#  Build a pattern. It will use all the features in the feature_dict by default
role_pattern = role_pattern_builder.build(match_example)  

# Match against any doc with the role_pattern
matches = role_pattern.match(doc)
print(matches)
'''
[{'arg1': [Forging], 'arg2': [shaping], 'pred': [involves]}]
'''

See examples/ for demonstration as to how to refine a pattern using negative examples.

API

RolePattern

RolePattern.spacy_dep_pattern

The dependency pattern in the form used to create the SpaCy DependencyMatcher object.

RolePattern.token_labels

The list of labels that corresponds to the tokens matched by the pattern.

Built with

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for role-pattern-nlp, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size role_pattern_nlp-0.2.0-py3-none-any.whl (16.9 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size role-pattern-nlp-0.2.0.tar.gz (12.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page