Build and match patterns for semantic role labelling
Project description
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
- SpaCy - DependencyMatcher
- SpaCy pattern builder
- networkx - Used by SpaCy pattern builder
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
role-pattern-nlp-0.0.7.tar.gz
(8.9 kB
view hashes)
Built Distribution
Close
Hashes for role_pattern_nlp-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a49ec3a7f6c866dea950410e9dee951636bc20f174f97f460b1364f7cdcb65b |
|
MD5 | d0c7cf61e23be57f77187f863db9bd1f |
|
BLAKE2b-256 | be274e8d1b6bb6ff615b8fef563af2cd0f201c0ab1a65234dfb222503d30a085 |