Esempio n. 1
0
CMorphInfos convertWordAnalysis(const WordAnalysis& wordAnalysis) {
    AnalysisVector const& analysisVec = wordAnalysis.second;
    CMorphInfos infos;
    infos.m_szWord = asWStr(wordAnalysis.first);
    const int n = analysisVec.size();
    for (int i=0 ; i<n ; ++i) {
        Analysis const& analysis = analysisVec[i];
        CMorphInfo info;
        info.m_szRoot = asWStr(analysis.root);
        info.m_szEnding = asWStr(analysis.ending);
        info.m_szClitic = asWStr(analysis.clitic);
        if (analysis.partofspeech.size() > 0) {
            info.m_cPOS = analysis.partofspeech[0];
        }
        info.m_szForm = asWStr(analysis.form);
        infos.m_MorphInfo.AddItem(info);
    }
    return infos;
}
Esempio n. 2
0
Syllables syllabify(std::string word) {
    // syllabify the word
    SILP silp;
    FSXSTRING fsxWord(asWStr(word));
    size_t n = silp.silbita(&fsxWord);
    silp.silbivalted();

    // create the wrapper data structure
    Syllables syllables;
    syllables.reserve(n);

    // copy results
    for (int idx=0 ; idx<n ; ++idx) {
        const SILBISTR *silbistr = silp.silbid[idx];
        syllables.push_back(Syllable(asString(silbistr->silp), silbistr->valde, silbistr->rohk));
    }
    return syllables;
}