lindera 3.0.0

A morphological analysis library.
Documentation
use lindera::LinderaResult;

fn main() -> LinderaResult<()> {
    #[cfg(feature = "embed-ipadic")]
    {
        use std::path::PathBuf;

        use lindera::tokenizer::TokenizerBuilder;

        let path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
            .join("../resources")
            .join("config")
            .join("lindera.yml");

        let builder = TokenizerBuilder::from_file(&path)?;

        let tokenizer = builder.build()?;

        let text = "Linderaは形態素解析エンジンです。ユーザー辞書も利用可能です。".to_string();
        println!("text: {text}");

        let tokens = tokenizer.tokenize(&text)?;

        for token in tokens {
            println!(
                "token: {:?}, start: {:?}, end: {:?}, details: {:?}",
                token.surface, token.byte_start, token.byte_end, token.details
            );
        }
    }

    #[cfg(not(feature = "embed-ipadic"))]
    {
        eprintln!("This example requires the 'embed-ipadic' feature to be enabled.");
        eprintln!("Run with: cargo run --features embed-ipadic --example tokenize_with_config");
    }

    Ok(())
}