Skip to main content

Sequence Tagger for Partially Annotated Dataset in PyTorch

Project description

pytorch-partial-tagger

This is a library to build a CRF tagger for a partially annotated dataset in PyTorch. You can build your own NER tagger only from dictionary. The algorithm of this tagger is based on Effland and Collins. (2021).

Usage

Import all dependencies first:

import torch

from partial_tagger.data import CharBasedTags
from partial_tagger.training import Trainer
from partial_tagger.utils import Metric, create_tag

Prepare your own datasets. Each item of dataset must have a string and tags. A string represents text below. Tags represent a collection of tags, where each tag has a start, a length, and a label, which are defined as tags below. A start represents a position in text where a tag starts. A length represents a distance in text between the beginning of a tag and the end of a tag. A label represents what you want to assign to a span of text defined by a start and a length.

from partial_tagger.utils import create_tags, CharBasedTags


text = "Tokyo is the capital of Japan."
tags = CharBasedTags(
    (
        create_tag(start=0, length=5, label="LOC"),  # Tag for Tokyo
        create_tag(start=24, length=5, label="LOC")  # Tag for Japan
    ),
    text
)
train_dataset = [(text, tags), ...]
validation_dataset = [...]
test_dataset = [...]

Here, you would train your tagger and evaluate its performance.

You could train your own tagger by initializing Trainer and passing datasets to it. After training, trainer gives you Recognizer object which predicts character-based tags from given texts.

You could evaluate the performance of your tagger using Metric as below.

device = torch.device("cuda")

trainer = Trainer()
recognizer = trainer(train_dataset, validation_dataset, device)

texts, ground_truths = zip(*test_dataset, strict=True)

batch_size = 15
predictions = recognizer(texts, batch_size, device)

metric = Metric()
metric(predictions, ground_truths)

print(metric.get_scores())  # Display F1-score, Precision, Recall

Installation

pip install pytorch-partial-tagger

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytorch_partial_tagger-0.1.3.tar.gz (23.2 kB view hashes)

Uploaded Source

Built Distribution

pytorch_partial_tagger-0.1.3-py3-none-any.whl (19.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page