Skip to main content

Introduction

onf-parser is a lightweight pure Python library for parsing the OntoNotes Normal Form format (.onf – cf. section 6.3).

Installation

Note that Python >=3.7 is required due to our dependency on dataclasses.

pip install onf-parser

Usage

There are three top-level functions:

from onf_parser import parse_files, parse_file, parse_file_string
# read a single file
sections = parse_file('ontonotes/some/file.onf')
# or parse a raw string
sections = parse_file_string(s)
# read all .onf files in a single directory
files = parse_file('ontonotes/')

For each file, a list of Section objects (which correspond to documents for the purposes of annotation) will be available:

for filepath, sections in files:
    for section in sections:
        coref_chains = section.chains
        for chain in coref_chains:
            print(chain.type)
            print(chain.id)
            print(chain.mentions)
            for mention in chain.mentions:
                print(mention.sentence_id)
                print(mention.tokens)
        for sentence in section.sentences:
            print(sentence.plain_sentence)
            print(sentence.plain_sentence.string)

            print(sentence.treebanked_sentence)
            print(sentence.treebanked_sentence.string)
            print(sentence.treebanked_sentence.tokens)

            print(sentence.speaker_information)
            print(sentence.speaker_information.name)
            print(sentence.speaker_information.start_time)
            print(sentence.speaker_information.stop_time)

            print(sentence.tree)
            print(sentence.tree.tree_string)

            print(sentence.leaves)
            for leaf in sentence.leaves:
                print(leaf.token)
                print(leaf.token_id)

                # NER
                print(leaf.name)
                print(leaf.name.type)
                print(leaf.name.token_id_range)
                print(leaf.name.tokens)

                # Coreference
                print(leaf.coref)
                print(leaf.coref.type)
                print(leaf.coref.token_id_range)
                print(leaf.coref.tokens)

                # WordNet sense
                print(leaf.sense)
                print(leaf.sense.label)

                # PropBank
                print(leaf.prop.label)
                print(leaf.prop)
                for arg_label, arg_spans in leaf.prop.args.items():
                    print(arg_label)
                    for arg_span in arg_spans:
                        print(arg_span)

See model classes for more information.

Release files for onf-parser 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for onf-parser 0.2.3
File Interpreter ABI Platform
onf_parser-0.2.3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Release files / onf_parser-0.2.3-py2.py3-none-any.whl

Download URL onf_parser-0.2.3-py2.py3-none-any.whl
Size 8.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5748eec425573c5f2eacf787f62641389e758b8f0ae576fe4ae35346dd5fa19a
BLAKE2b-256 checksum
How to use checksums
24b972ad5b67eda95c456b90fc58bb23f1bc142de5b632bfe93079f5ce852a11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.2.3 This release

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page