1 个不稳定版本

0.1.0 2024年5月30日

#1297文本处理

MIT 许可证

37KB
873 代码行

vidyut-chandas

梵文韵律分类器

vidyut-chandas 是一种实验性的梵文韵律分类器。

crate 正在 Ambuda 项目中积极开发。如果您喜欢我们的工作并希望为其做出贡献,我们鼓励您 加入我们的Discord服务器,在那里您可以结识其他梵文程序员和爱好者。

在线演示可在此 获取。

概述

梵文诗歌使用各种 韵律,这些韵律指定了诗句必须遵循的音节模式。vidyut-chandas 的目标是提供一个简单的API来识别给定诗句使用的韵律。

vidyut-chandas 是实验性代码,并效仿了像 sanskritmetresSkrutable 这样的伟大项目。

用法

(此API不稳定。)

我们建议通过我们的 Chandas API 使用 vidyut-chandas

use vidyut_chandas::{Chandas, MatchType, Vrtta};

let vrttas: Vec<Vrtta> = vec![
    "vasantatilakA\tvrtta\tGGLGLLLGLLGLGG".try_into().unwrap(),
    "mandAkrAntA\tvrtta\tGGGGLLLLLGGLGGLGG".try_into().unwrap(),
    "puzpitAgrA\tvrtta\tLLLLLLGLGLGG/LLLLGLLGLGLGG".try_into().unwrap(),
    "udgatA\tvrtta\tLLGLGLLLGL/LLLLLGLGLG/GLLLLLLGLLG/LLGLGLLLGLGLG".try_into().unwrap()
];
let chandas = Chandas::new(vrttas);

let result = chandas.classify("mAtaH samastajagatAM maDukEwaBAreH");
assert_eq!(result.vrtta().as_ref().unwrap().name(), "vasantatilakA");
assert_eq!(result.match_type(), MatchType::Pada);

依赖项

~1.5–2.4MB
~36K SLoC