Skip to content

extract_lefts_and_rights

Given a spaCy token, extract recursively all tokens in its dependency subtree in inorder traversal.

Source code in library_analyzer/processing/dependencies/_get_dependency.py
def extract_lefts_and_rights(curr_token: Token, extracted: Union[List, None] = None):
    """
    Given a spaCy token, extract recursively all tokens in its dependency subtree in inorder traversal.
    """
    if extracted is None:
        extracted = []

    token_lefts = list(curr_token.lefts)
    for token in token_lefts:
        extract_lefts_and_rights(token, extracted)

    extracted.append(curr_token.text)

    token_rights = list(curr_token.rights)
    for token in token_rights:
        extract_lefts_and_rights(token, extracted)

    return extracted