Skip to content

Add stanza constituency output #78

Description

@BramVanroy

Since release v1.3.0, stanza has a constituency parser for English. Support for more languages will follow. It would be great if we could access the constituency parse from within the spaCy wrapper too.

At first I thought I'd create a separate package for this that uses spacy_stanza under the hood and then registers a custom component that adds the constituency parse. However, that implies either copying most of spacy_stanza, subclassing StanzaTokenizer, and writing to Underscore objects in __call__. Or only creating a custom component and after receiving a Doc, parsing its text again with stanza to get the constituency parse. Neither of these are ideal, so I would hope that you are open to incorporating such functionality in spacy_stanza directly.

The stanza constituency parser adds a constituency object (a Tree) to every sentence. Things that may be considered

  • Subclassing the stanza constituency Tree so that we can use spaCy Tokens as node labels. This would allow us to navigate the spaCy sentence Span object via the tree
  • Register ._.constituency for every sentence span and every span that is a constituent (a sub-classed stanza Tree)
  • Register ._.constituency for every Token, which would be its subtree in the full tree with itself as the node (a sub-classed stanza Tree)

If you agree I can work on this from time to time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions