Nasty.Language.English.TemplateExtractor (Nasty v0.3.0)
View SourceTemplate-based information extraction with customizable patterns and slot filling.
Allows defining extraction templates with typed slots that are filled by matching entities and patterns in text.
Examples
# Define a template
template = %{
name: "employment",
pattern: "[PERSON] works at [ORG]",
slots: [
%{name: :employee, type: :PERSON, required: true},
%{name: :employer, type: :ORG, required: true}
]
}
# Extract using template
{:ok, results} = TemplateExtractor.extract(document, [template])
# => [%{employee: "John Smith", employer: "Google", confidence: 0.85}]
Summary
Functions
Creates a template for acquisition events.
Creates a template for educational affiliations.
Creates a template for employment relations.
Extracts information using provided templates.
Creates a template for founding events.
Creates a template for location relations.
Creates a template for product launch events.
Creates a template for parent-subsidiary relations.
Types
Functions
@spec acquisition_template() :: template()
Creates a template for acquisition events.
@spec education_template() :: template()
Creates a template for educational affiliations.
@spec employment_template() :: template()
Creates a template for employment relations.
Examples
iex> TemplateExtractor.employment_template()
%{name: "employment", pattern: "[PERSON] works at [ORG]", ...}
@spec extract(Nasty.AST.Document.t(), [template()], keyword()) :: {:ok, [extraction_result()]}
Extracts information using provided templates.
Arguments
document- Document to extract fromtemplates- List of template definitionsopts- Options
Options
:min_confidence- Minimum confidence threshold (default: 0.5):max_results- Maximum results to return (default: unlimited)
Examples
iex> templates = [employment_template(), acquisition_template()]
iex> TemplateExtractor.extract(document, templates)
{:ok, [%{template: "employment", slots: %{...}, ...}]}
@spec founding_template() :: template()
Creates a template for founding events.
@spec location_template() :: template()
Creates a template for location relations.
@spec product_launch_template() :: template()
Creates a template for product launch events.
@spec subsidiary_template() :: template()
Creates a template for parent-subsidiary relations.