|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.stanford.nlp.trees.TreeGraph
edu.stanford.nlp.trees.GrammaticalStructure
public abstract class GrammaticalStructure
A GrammaticalStructure
is a
(that is, a tree with additional labeled
arcs between nodes) for representing the grammatical relations in a
parse tree. A new TreeGraph
GrammaticalStructure
is constructed
from an existing parse tree with the help of
, which
defines a hierarchy of grammatical relations, along with
patterns for identifying them in parse trees. The constructor for
GrammaticalRelation
GrammaticalStructure
uses these definitions to
populate the new GrammaticalStructure
with as many
labeled grammatical relations as it can. Once constructed, the new
GrammaticalStructure
can be printed in various
formats, or interrogated using the interface methods in this
class.
EnglishGrammaticalRelations
,
GrammaticalRelation
,
EnglishGrammaticalStructure
,
Serialized FormField Summary | |
---|---|
protected List<TypedDependency> |
allTypedDependencies
|
static int |
CoNLLX_FieldCount
|
static int |
CoNLLX_GovField
|
static int |
CoNLLX_POSField
|
static int |
CoNLLX_RelnField
|
static int |
CoNLLX_WordField
|
static String |
DEFAULT_PARSER_FILE
|
protected Set<Dependency<Label,Label,Object>> |
dependencies
|
protected List<TypedDependency> |
typedDependencies
|
Fields inherited from class edu.stanford.nlp.trees.TreeGraph |
---|
root |
Constructor Summary | |
---|---|
GrammaticalStructure(List<TypedDependency> projectiveDependencies,
TreeGraphNode root)
|
|
GrammaticalStructure(Tree t,
Collection<GrammaticalRelation> relations,
HeadFinder hf,
Filter<String> puncFilter)
|
|
GrammaticalStructure(Tree t,
Collection<GrammaticalRelation> relations,
Lock relationsLock,
HeadFinder hf,
Filter<String> puncFilter)
Create a new GrammaticalStructure, analyzing the parse tree and populate the GrammaticalStructure with as many labeled grammatical relation arcs as possible. |
Method Summary | |
---|---|
Collection<TypedDependency> |
allTypedDependencies()
Returns all the typed dependencies of this grammatical structure. |
static GrammaticalStructure |
buildCoNNLXGrammaticStructure(List<List<String>> tokenFields,
Map<String,GrammaticalRelation> shortNameToGRel,
GrammaticalStructureFromDependenciesFactory factory)
|
protected void |
collapseDependencies(List<TypedDependency> list,
boolean CCprocess)
Destructively modify the Collection<TypedDependency> to collapse
language-dependent transitive dependencies. |
protected void |
collapseDependenciesTree(List<TypedDependency> list)
Destructively modify the Collection<TypedDependency> to collapse
language-dependent transitive dependencies but keeping a tree structure. |
protected void |
correctDependencies(Collection<TypedDependency> list)
Destructively modify the TypedDependencyGraph to correct
language-dependent dependencies. |
Set<Dependency<Label,Label,Object>> |
dependencies()
Returns the set of (governor, dependent) dependencies in this GrammaticalStructure . |
static String |
dependenciesToString(GrammaticalStructure gs,
Collection<TypedDependency> deps,
Tree tree,
boolean conllx,
boolean extraSep)
|
static GrammaticalStructure |
fromStringReps(List<String> tokens,
List<String> posTags,
List<String> deps)
Create a grammatical structure from its string representation. |
List<String> |
getDependencyPath(int nodeIndex,
int rootIndex)
Returns the dependency path as a list of String, from node to root, it is assumed that that root is an ancestor of node |
Set<TreeGraphNode> |
getDependents(TreeGraphNode t)
Tries to return a Set of leaf (terminal) nodes
which are the s of the given node t . |
static TreeGraphNode |
getGovernor(TreeGraphNode t)
Tries to return a leaf (terminal) node which is the of the given node t . |
GrammaticalRelation |
getGrammaticalRelation(int govIndex,
int depIndex)
Get GrammaticalRelation between gov and dep, and null if gov is not the governor of dep |
static GrammaticalRelation |
getGrammaticalRelation(TreeGraphNode gov,
TreeGraphNode dep)
Get GrammaticalRelation between gov and dep, and null if gov is not the governor of dep |
static List<GrammaticalRelation> |
getListGrammaticalRelation(TreeGraphNode gov,
TreeGraphNode dep)
Get a list of GrammaticalRelation between gov and dep. |
static TreeGraphNode |
getNodeInRelation(TreeGraphNode t,
GrammaticalRelation r)
|
static Collection<TypedDependency> |
getRoots(Collection<TypedDependency> list)
Return a list of TypedDependencies which are not dependent on any node from the list. |
static boolean |
isConnected(Collection<TypedDependency> list)
Checks if all the typeDependencies are connected |
static void |
main(String[] args)
Given sentences or trees, output the typed dependencies. |
static void |
printDependencies(GrammaticalStructure gs,
Collection<TypedDependency> deps,
Tree tree,
boolean conllx,
boolean extraSep)
Print typed dependencies in either the Stanford dependency representation or in the conllx format. |
static List<GrammaticalStructure> |
readCoNLLXGrammaticStructureCollection(String fileName,
Map<String,GrammaticalRelation> shortNameToGRel,
GrammaticalStructureFromDependenciesFactory factory)
Read in a file containing a CoNLL-X dependency treebank and return a corresponding list of GrammaticalStructures. |
Collection<TypedDependency> |
typedDependencies()
Returns the typed dependencies of this grammatical structure. |
List<TypedDependency> |
typedDependencies(boolean includeExtras)
Returns the typed dependencies of this grammatical structure. |
List<TypedDependency> |
typedDependenciesCCprocessed()
Get a list of the typed dependencies, including extras like control dependencies, collapsing them and distributing relations across coordination. |
List<TypedDependency> |
typedDependenciesCCprocessed(boolean includeExtras)
Get the typed dependencies after collapsing them and processing eventual CC complements. |
Collection<TypedDependency> |
typedDependenciesCollapsed()
Get the typed dependencies after collapsing them. |
List<TypedDependency> |
typedDependenciesCollapsed(boolean includeExtras)
Get the typed dependencies after collapsing them. |
Collection<TypedDependency> |
typedDependenciesCollapsedTree()
Get the typed dependencies after mostly collapsing them, but keep a tree structure. |
Methods inherited from class edu.stanford.nlp.trees.TreeGraph |
---|
addNodeToIndexMap, getNodeByIndex, getNodes, root, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final Set<Dependency<Label,Label,Object>> dependencies
protected final List<TypedDependency> typedDependencies
protected final List<TypedDependency> allTypedDependencies
public static final String DEFAULT_PARSER_FILE
public static final int CoNLLX_WordField
public static final int CoNLLX_POSField
public static final int CoNLLX_GovField
public static final int CoNLLX_RelnField
public static final int CoNLLX_FieldCount
Constructor Detail |
---|
public GrammaticalStructure(Tree t, Collection<GrammaticalRelation> relations, Lock relationsLock, HeadFinder hf, Filter<String> puncFilter)
t
- A Tree to analyzerelations
- A set of GrammaticalRelations to considerrelationsLock
- Something needed to make this thread-safehf
- A HeadFinder for analysispuncFilter
- A Filter to reject punctuation. To delete punctuation
dependencies, this filter should return false on
punctuation word strings, and true otherwise.
If punctuation dependencies should be kept, you
should pass in a Filters.<String>acceptFilter().public GrammaticalStructure(List<TypedDependency> projectiveDependencies, TreeGraphNode root)
public GrammaticalStructure(Tree t, Collection<GrammaticalRelation> relations, HeadFinder hf, Filter<String> puncFilter)
Method Detail |
---|
public static GrammaticalStructure fromStringReps(List<String> tokens, List<String> posTags, List<String> deps)
tokens
- posTags
- deps
- public Set<Dependency<Label,Label,Object>> dependencies()
GrammaticalStructure
.
GrammaticalStructure
.public Set<TreeGraphNode> getDependents(TreeGraphNode t)
Set
of leaf (terminal) nodes
which are the DEPENDENT
s of the given node t
.
Probably, t
should be a leaf node as well.
t
- a leaf node in this GrammaticalStructure
Set
of nodes which are dependents of
node t
, or else null
public static TreeGraphNode getGovernor(TreeGraphNode t)
GOVERNOR
of the given node t
.
Probably, t
should be a leaf node as well.
t
- a leaf node in this GrammaticalStructure
t
, or else null
public static TreeGraphNode getNodeInRelation(TreeGraphNode t, GrammaticalRelation r)
public GrammaticalRelation getGrammaticalRelation(int govIndex, int depIndex)
public static GrammaticalRelation getGrammaticalRelation(TreeGraphNode gov, TreeGraphNode dep)
public static List<GrammaticalRelation> getListGrammaticalRelation(TreeGraphNode gov, TreeGraphNode dep)
public Collection<TypedDependency> typedDependencies()
public Collection<TypedDependency> allTypedDependencies()
public List<TypedDependency> typedDependencies(boolean includeExtras)
public Collection<TypedDependency> typedDependenciesCollapsed()
public Collection<TypedDependency> typedDependenciesCollapsedTree()
public List<TypedDependency> typedDependenciesCollapsed(boolean includeExtras)
public List<TypedDependency> typedDependenciesCCprocessed(boolean includeExtras)
true
.
includeExtras
- If true, the list of typed dependencies
returned may include "extras", such as controlled subject links.
public List<TypedDependency> typedDependenciesCCprocessed()
protected void collapseDependencies(List<TypedDependency> list, boolean CCprocess)
Collection<TypedDependency>
to collapse
language-dependent transitive dependencies.
Default is no-op; to be over-ridden in subclasses.
list
- A list of dependencies to process for possible collapsingCCprocess
- apply CC process?protected void collapseDependenciesTree(List<TypedDependency> list)
Collection<TypedDependency>
to collapse
language-dependent transitive dependencies but keeping a tree structure.
Default is no-op; to be over-ridden in subclasses.
list
- A list of dependencies to process for possible collapsingprotected void correctDependencies(Collection<TypedDependency> list)
TypedDependencyGraph
to correct
language-dependent dependencies. (e.g., nsubjpass in a relative clause)
Default is no-op; to be over-ridden in subclasses.
public List<String> getDependencyPath(int nodeIndex, int rootIndex)
public static boolean isConnected(Collection<TypedDependency> list)
list
- a list of typedDependencies
public static Collection<TypedDependency> getRoots(Collection<TypedDependency> list)
list
- The list of TypedDependencies to check
public static void printDependencies(GrammaticalStructure gs, Collection<TypedDependency> deps, Tree tree, boolean conllx, boolean extraSep)
deps
- Typed dependencies to printtree
- Tree corresponding to typed dependencies (only necessary if conllx
== true)conllx
- If true use conllx format, otherwise use Stanford representationextraSep
- If true, in the Stanford representation, the extra dependencies
(which do not preserve the tree structure) are printed after the
basic dependenciespublic static String dependenciesToString(GrammaticalStructure gs, Collection<TypedDependency> deps, Tree tree, boolean conllx, boolean extraSep)
public static List<GrammaticalStructure> readCoNLLXGrammaticStructureCollection(String fileName, Map<String,GrammaticalRelation> shortNameToGRel, GrammaticalStructureFromDependenciesFactory factory) throws IOException
IOException
public static GrammaticalStructure buildCoNNLXGrammaticStructure(List<List<String>> tokenFields, Map<String,GrammaticalRelation> shortNameToGRel, GrammaticalStructureFromDependenciesFactory factory)
public static void main(String[] args)
By default, the method outputs the collapsed typed dependencies with processing of conjuncts. The input can be given as plain text (one sentence by line) using the option -sentFile, or as trees using the option -treeFile. For -sentFile, the input has to be strictly one sentence per line. You can specify where to find a parser with -parserFile serializedParserPath. See LexicalizedParser for more flexible processing of text files (including with Stanford Dependencies output). The above options assume a file as input. You can also feed trees (only) via stdin by using the option -filter. If one does not specify a -parserFile, one can specify which language pack to use with -tLPP, This option specifies a class which determines which GrammaticalStructure to use, which HeadFinder to use, etc. It will default to edu.stanford.nlp.parser.lexparser.EnglishTreebankParserParams, but any TreebankLangParserParams can be specified.
If no method of producing trees is given other than to use the LexicalizedParser, but no parser is specified, a default parser is used, the English parser. You can specify options to load with the parser using the -parserOpts flag. If the default parser is used, and no options are provided, the option -retainTmpSubcategories is used.
The following options can be used to specify the types of dependencies
wanted:
-collapsed collapsed dependencies
-basic non-collapsed dependencies that preserve a tree structure
-nonCollapsed non-collapsed dependencies that do not preserve a tree
structure (the basic dependencies plus the extra ones) -CCprocessed
collapsed dependencies and conjunctions processed (dependencies are added
for each conjunct) -- this is the default if no option are passed
-collapsedTree collapsed dependencies retaining a tree structure
-makeCopulaHead Contrary to the approach argued for in the SD papers,
nevertheless make the verb 'to be' the head, not the predicate noun, adjective,
etc.
The -conllx option will output the dependencies into the CoNLL format,
instead of in the standard Stanford format (relation(governor,dependent)) and will retain punctuation by default
(where punctuation will be attached to the root of the sentence with the "punct" relation).
When used in the "collapsed" format, words such as prepositions, conjunctions which get collapsed into the grammatical relations
and are not part of the sentence per se anymore will be annotated with "erased" as grammatical relation and attached to the fake "ROOT" node
with index 0.
java edu.stanford.nlp.trees.GrammaticalStructure [-treeFile FILE | -sentFile FILE | -conllxFile FILE | -filter]
[-collapsed -basic -CCprocessed -test]
args
- Command-line arguments, as above
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |