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
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file role-pattern-nlp-0.2.0.tar.gz.
File metadata
- Download URL: role-pattern-nlp-0.2.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7f10ec3990e2d9cb2a0582e87cab284e0f711e792ed99308c95fdb0a6e5a4ac
|
|
| MD5 |
cbc74a42fc024364ddb2546b3139cf01
|
|
| BLAKE2b-256 |
3623fada487e59d13627cd8a38b3aa52fd61f65cac86466601793caf85753207
|
File details
Details for the file role_pattern_nlp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: role_pattern_nlp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50f6e7183d7f5179b791a0053cbffd7a04c3d5c79ec484f3b90e87db85dec682
|
|
| MD5 |
b33e224e32d1525dd658fc3904075b03
|
|
| BLAKE2b-256 |
af9d738c2e2f97d16d84477a15c119561958f25277e834d9fd4e953b764666bd
|