Nasty.Language.English.DependencyExtractor (Nasty v0.3.0)
View SourceExtracts dependency relations from parsed syntactic structures.
Converts phrase structure parses (NP, VP, PP, etc.) into Universal Dependencies relations, creating a dependency graph that captures grammatical relationships.
Approach
- Extract dependencies from clause structures (subject, predicate)
- Extract dependencies within phrases (determiners, modifiers)
- Handle coordination and subordination
- Handle relative clauses
Example
iex> sentence = parse("The cat sat on the mat")
iex> deps = DependencyExtractor.extract(sentence)
[
%Dependency{relation: :det, head: cat, dependent: the},
%Dependency{relation: :nsubj, head: sat, dependent: cat},
%Dependency{relation: :case, head: mat, dependent: on},
%Dependency{relation: :det, head: mat, dependent: the},
%Dependency{relation: :obl, head: sat, dependent: mat}
]
Summary
Functions
@spec extract(Nasty.AST.Sentence.t()) :: [Nasty.AST.Dependency.t()]
Extracts all dependencies from a sentence.
Returns a list of Dependency structs representing grammatical relations.
@spec extract_from_clause(Nasty.AST.Clause.t()) :: [Nasty.AST.Dependency.t()]
Extracts dependencies from a single clause.