Skip to main content

novel_segment/
lib.rs

1//! Chinese word segmentation for web novels.
2//!
3//! This crate is a Rust port of the TypeScript `novel-segment` package.
4//! Other Rust programs should depend on this crate only:
5//!
6//! ```toml
7//! ws-segment-rs = { path = "../ws-segment-rs/crates/novel-segment" }
8//! ```
9//!
10//! ```rust,no_run
11//! use novel_segment::{DoSegmentOptions, Segment, SegmentOptions};
12//!
13//! fn main() -> Result<(), novel_segment::Error> {
14//!     let mut seg = Segment::new(SegmentOptions { auto_cjk: true, ..Default::default() });
15//!     seg.use_default()?;
16//!     let words = seg.do_segment("這是一個中文分詞模組。", DoSegmentOptions::default());
17//!     for w in words {
18//!         println!("{} {:?}", w.w, w.p);
19//!     }
20//!     Ok(())
21//! }
22//! ```
23
24mod colors;
25mod datetime;
26mod zht;
27mod dict;
28mod error;
29mod loader;
30mod names;
31mod optimizers;
32mod options;
33mod pipeline;
34mod postag;
35mod segment;
36mod service;
37mod stopword;
38mod text;
39mod tokenizers;
40mod word;
41
42pub use error::{Error, Result};
43pub use options::{DoSegmentOptions, SegmentOptions};
44pub use pipeline::{Optimizer, Tokenizer};
45pub use postag::POSTAG;
46pub use segment::Segment;
47pub use service::{
48    apply_extras, convert_joined, crlf_normalize, load_json_config, process_text, run_test,
49    segment_words, ExpectedItem, SegmentMode, TestRequest, TestResult,
50};
51pub use word::{stringify, stringify_list, Word};