public static function meaningsToLemmas($word) { $word_obj_arr = PWLemma::getByLemma($word); $words = array(); foreach ($word_obj_arr as $word_obj) { if ($word_obj->getOrigin() > 0) { // The page $word does not exist in LANG_CODE.wiktionary.org continue; } $page_id = $word_obj->getID(); // if origin=0 then word is added from wiktionary, and lemma.id = page.id $meaning_arr = TMeaning::getByPageAndLang($page_id, PWLemma::getLangCode()); foreach ($meaning_arr as $meaning_obj) { $meaning_wiki_text = $meaning_obj->getWikiText(); $meaning_text = $meaning_wiki_text->getText(); // $words = array_merge($words,preg_split('/\P{L}+/u', $meaning_text, -1, PREG_SPLIT_NO_EMPTY)); $words = array_merge($words, preg_split('/((^\\p{P}+)|(\\p{P}*\\s+\\p{P}*)|(\\p{P}+$))/u', $meaning_text, -1, PREG_SPLIT_NO_EMPTY)); } } return $words; }