1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//! # nerrs
//!
//! CRF-based Named Entity Recognition for Persian text.
//!
//! Uses [`crfrs`] for model training and Viterbi inference.
//!
//! ## Entity types
//!
//! The default tagset uses BIO encoding over these entity classes:
//!
//! | Tag | Meaning |
//! |-----|---------|
//! | `O` | Outside any entity |
//! | `B-PER` / `I-PER` | Person name |
//! | `B-ORG` / `I-ORG` | Organisation |
//! | `B-LOC` / `I-LOC` | Location |
//! | `B-DAT` / `I-DAT` | Date |
//! | `B-TIM` / `I-TIM` | Time |
//! | `B-MON` / `I-MON` | Money / currency amount |
//! | `B-PCT` / `I-PCT` | Percentage |
//! | `B-EVE` / `I-EVE` | Event |
//!
//! ## Quick start
//!
//! ```no_run
//! use nerrs::NerTagger;
//!
//! let mut tagger = NerTagger::new();
//! tagger.load_model("ner.model").unwrap();
//! let entities = tagger.tag(&["علی", "به", "تهران", "رفت", "."]).unwrap();
//! // → [("علی","B-PER"), ("به","O"), ("تهران","B-LOC"), ("رفت","O"), (".","O")]
//! ```
//!
//! ## Training
//!
//! ```no_run
//! use nerrs::{NerTagger, crfrs::TrainConfig};
//!
//! // IOB-tagged corpus: Vec<Vec<(word, ner_tag)>>
//! let corpus: Vec<Vec<(String, String)>> = vec![];
//! NerTagger::train_and_save(&corpus, "ner.model", TrainConfig::default()).unwrap();
//! ```
/// Error types for nerrs.
pub use crfrs;
pub use ;
pub use ;
/// Default NER labels in BIO encoding.
pub const DEFAULT_LABELS: & = &;