Example #1
0
 /**
  * Make article from nominative not strict words and runs check again
  * @param Article $article
  * @return string[]
  */
 protected function heuristicsCheck(Article $article)
 {
     $nominativeArticle = '';
     foreach ($article->words as $word) {
         if (!$word->variants[0]['strict'] && !$word->checkGrammeme(MystemConst::OTHER_VULGARISM, 0)) {
             $nominativeArticle .= ' ' . $word;
         }
     }
     if ($nominativeArticle === '') {
         return array();
     }
     $newArticle = new Article($nominativeArticle);
     $words = $newArticle->checkBadWords(false);
     $result = array();
     foreach ($words as $original => $word) {
         foreach ($article->words as $originalWord) {
             if ($original === $originalWord->normalized()) {
                 $result[$originalWord->original] = $word;
                 break;
             }
         }
     }
     return $result;
 }