#syllable #spanish #text #syllabize

nightly bin+lib syllabize-es

将西班牙语文本进行音节化,以及更多功能

15 个版本

0.5.2 2023 年 5 月 7 日
0.5.1 2021 年 9 月 4 日
0.4.5 2021 年 9 月 1 日
0.4.2 2021 年 8 月 24 日
0.1.0 2021 年 8 月 11 日

文本处理 中排名 471

MIT 许可证

46KB
1K SLoC

syllabize-es

将西班牙语单词转换为音节,以及更多功能。

简介

该包试图复制大部分来自 Silabeador TIP 的功能,并提供一些额外的功能

  • 将单词划分为音节。
  • 识别重音。
  • 寻找双元音、三元音和音节间隙,并提供详细的信息。
  • 找到单词的押韵部分。

它已针对综合数据集进行了测试,因此该包应该是相当可靠的。

示例

use syllabize_es::{syllable::Syllable, Word, StressType, DiphthongType, RhymeOptions};

// Convert a word into syllabized struct
let word: Word = "construir".into();

// Number of syllables
assert_eq!(word.syllables.len(), 2);

// First syllable, in string form
assert_eq!(word.syllables[0].to_string(), "cons");

// Second syllable, in struct form
assert_eq!(
    word.syllables[1],
    Syllable {
        onset: "tr".to_string(),
        nucleus: "ui".to_string(),
        coda: "r".to_string()
    }
);

// Get syllabified string, using "-" as delimiter
assert_eq!(word.syllabize("-"), "cons-truir");

// Index of the stressed syllable of `word.syllables`
assert_eq!(word.stress_index, 1);

// Named type of the stress
assert_eq!(word.stress(), StressType::Oxytone);

// All existing vowel combinations
let vowel_combos = word.vowel_combos();

// The word doesn't contain hiatuses or triphthongs
assert_eq!(vowel_combos.hiatuses.len(), 0);
assert_eq!(vowel_combos.triphthongs.len(), 0);

// But it contains a diphthong
assert_eq!(vowel_combos.diphthongs.len(), 1);

let dp = &vowel_combos.diphthongs[0];
// All its attributes
assert_eq!(dp.syllable_index, 1);
assert_eq!(dp.kind, DiphthongType::Homogenous);
assert_eq!(dp.composite, "ui");

// The rhyming part of the word
assert_eq!(word.rhyme(), "ir");

// The rhyming with default options `RhymeOptions { yeismo: true, seseo: false, b_equals_v: true}`
assert!(word.rhymes_with(&Word::from("ir"), None));
// Rhyming with custom options
assert!(word.rhymes_with(&Word::from("ir"), Some(RhymeOptions { yeismo: true, seseo: true, b_equals_v: true})));
// Assonant rhymes
assert!(word.assonant_rhymes_with(&Word::from("colibrí")));

CLI 示例

$ syllabize palabra
pa-la-bra

局限性和待办事项

某些属性没有提供,因为它们很容易判断,无需对单词进行音节化

  • 单词的长度。
  • 重音类型:音韵重音(没有重音符号)或正字法重音(有重音符号)。

某些属性没有提供,因为它们很容易获得。例如:当您有一个音节向量和重音音节的索引时,重音音节很容易获得。

某些功能可能会在未来的版本中提供,例如

  • 后缀代词。te,lo,等等。

许可证

MIT.

灵感

该包是对 NPM 包 silabacion 的重写,但具有更简单的接口。

没有运行时依赖项