Beispiel #1
0
function getNouns($word)
{
    $lexems = Lexem::searchWordlists($word, true);
    $result = array();
    foreach ($lexems as $l) {
        if ($l->modelType == 'M' || $l->modelType == 'F' || $l->modelType == 'N' || $l->modelType == 'A' || $l->modelType == 'MF') {
            $result[] = $l;
        }
    }
    return $result;
}
Beispiel #2
0
$seen = 0;
while (($dbRow = mysql_fetch_assoc($dbResult)) != null) {
    $l = Lexem::createFromDbRow($dbRow);
    $seen++;
    $defs = Definition::loadByLexemId($l->id);
    if (count($defs)) {
        $parts = split(' ', $l->form);
        print text_padRight($l->form, 30);
        foreach ($parts as $part) {
            $part = trim($part);
            if (!$part || in_array($part, $stopWords)) {
                // Skip common words
                continue;
            }
            print '[';
            $baseForms = Lexem::searchWordlists($part, true);
            if (!count($baseForms)) {
                $baseForm = Lexem::create($part, 'T', '1', '');
                $baseForm->comment = "Provine din despărțirea lexemului [{$l->form}]";
                $baseForm->noAccent = true;
                $baseForm->save();
                $baseForm->id = db_getLastInsertedId();
                $baseForm->regenerateParadigm();
                $baseForms[] = $baseForm;
            }
            // Associate every definition with every lexem
            foreach ($baseForms as $baseForm) {
                print $baseForm->form . ' ';
                foreach ($defs as $def) {
                    LexemDefinitionMap::associate($baseForm->id, $def->id);
                }