LOCUS-Function / README.md
jbarrow's picture
Upload LOCUS-Function weights, tokenizer, and model card
42ae373 verified
---
base_model: answerdotai/ModernBERT-base
library_name: transformers
pipeline_tag: text-classification
tags:
- text-classification
- legal
- locus
- modernbert
license: apache-2.0
datasets:
- LocalLaws/LOCUS-v1.0
---
# LocalLaws/LOCUS-Function
A ModernBERT classifier for the **Primary Function** axis of the LOCUS
(Local Ordinances Corpus, United States) dataset.
Fine-tuned from [answerdotai/ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) on
[LocalLaws/LOCUS-v1.0](https://huggingface.co/datasets/LocalLaws/LOCUS-v1.0).
## Labels
- `Context`
- `Enforcement`
- `Process`
- `Rules`
- `Structural`
## Training
| | |
|---|---|
| Base model | `answerdotai/ModernBERT-base` |
| Max length | 1024 |
| Classifier pooling | `mean` |
| Train / val / test | 79106 / 10447 / 10447 |
## Evaluation
| | |
|---|---|
| Metric | macro-F1 |
| Validation macro-F1 | 0.8443 |
| Test macro-F1 | 0.8428 |
| Test accuracy | 0.8849 |
```
precision recall f1-score support
Context 0.8399 0.9138 0.8753 1033
Enforcement 0.7561 0.8682 0.8083 1032
Process 0.6038 0.7691 0.6765 654
Rules 0.9308 0.8570 0.8924 4896
Structural 0.9675 0.9555 0.9614 2832
accuracy 0.8849 10447
macro avg 0.8196 0.8727 0.8428 10447
weighted avg 0.8940 0.8849 0.8876 10447
```
## Usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tok = AutoTokenizer.from_pretrained("LocalLaws/LOCUS-Function")
model = AutoModelForSequenceClassification.from_pretrained("LocalLaws/LOCUS-Function")
model.eval()
text = "No person shall keep any swine within the city limits."
enc = tok(text, return_tensors="pt", truncation=True, max_length=1024)
with torch.no_grad():
logits = model(**enc).logits
pred = logits.argmax(-1).item()
print(model.config.id2label[pred])
```