Skip to main content

"Partial/Fuzzy Conditional random field in PyTorch."

Project description

pytorch-partial-crf

Partial/Fuzzy conditional random field in PyTorch.

How to use

Install

pip install pytorch-partial-crf

Use CRF

import torch
from pytorch_partial_crf import CRF

# Create
num_tags = 6
model = CRF(num_tags)

batch_size, sequence_length = 3, 5
emissions = torch.randn(batch_size, sequence_length, num_tags)

tags = torch.LongTensor([
    [1, 2, 3, 3, 5],
    [1, 3, 4, 2, 1],
    [1, 0, 2, 4, 4],
])

# Computing log likelihood
model(emissions, tags)

Use partial CRF

import torch
from pytorch_partial_crf import PartialCRF

# Create
num_tags = 6
model = PartialCRF(num_tags)

batch_size, sequence_length = 3, 5
emissions = torch.randn(batch_size, sequence_length, num_tags)

# Set unknown tag to -1
tags = torch.LongTensor([
    [1, 2, 3, 3, 5],
    [-1, 3, 3, 2, -1],
    [-1, 0, -1, -1, 4],
])

# Computing log likelihood
model(emissions, tags)

Decoding

Viterbi decode

model.viterbi_decode(emissions)

Restricted viterbi decode

possible_tags = torch.randn(batch_size, sequence_length, num_tags)
possible_tags[possible_tags <= 0] = 0 # `0` express that can not pass.
possible_tags[possible_tags > 0] = 1 # `1` express that can pass.
possible_tags = possible_tags.byte()
model.restricted_viterbi_decode(emissions, possible_tags)

Marginal probabilities

model.marginal_probabilities(emissions)

License

MIT

References

The implementation is based on AllenNLP CRF module and pytorch-crf.

Project details


Download files

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

Files for pytorch-partial-crf, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size pytorch-partial-crf-0.1.2.tar.gz (5.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page