/** * Dokonuje korekty ortograficznej. * Je¶li wyraz jest w s³owniku, przepisuje go. * W przeciwnym razie próbuje dodaæ znaki diakrytyczne (dodaje wszystkie * znalezione wersje). * Je¶li i to zawiedzie poszukuje w s³owniku ortograficznym pierwszych piêciu * wyrazów przypominaj±cych szukany i dodaje je do listy wyrazów. * Gdy nic nie zostanie odnalezione i aktywy jest parametr $copy_unk * wyraz w oryginalnej postaci jest przenoszony do listy. * * @param array $comment Tablica wyrazów do przeanalizowania. * @param bool $copy_unk Czy kopiowaæ nieznane wyrazy? * @return array Tablica wyrazów lub false, je¶li nie ma wyrazów. */ protected function checkSpelling(array $comment, $copy_unk = false) { $tok_comment = array(); foreach ($comment as $w) { if (pspell_check(self::$pspell, $w)) { $tok_comment[] = $w; } elseif ($temp = self::$fsaa->accent_word($w)) { $tok_comment = array_merge($tok_comment, $temp); } elseif (strlen($w) > 3 && count($temp = pspell_suggest(self::$pspell, $w)) > 0) { $tok_comment = array_merge($tok_comment, array_slice(array_filter($temp, array($this, "pspell_filter")), 0, 5)); } else { if ($copy_unk) { $tok_comment[] = $w; } } } if (count($tok_comment) == 0) { return false; } return $tok_comment; }
require_once '../fsa/fsaa-opt.php'; require_once '../fsa/fsal-opt.php'; require_once '../fsa/fsas-opt.php'; // konfiguracja // $cfg_serv = 'localhost'; $cfg_user = '******'; $cfg_pass = ''; $cfg_db = 'swk'; $cfg_tab = '3'; ////////////////// // po³±cz z baz± danych $db = DBHelper::connect($cfg_serv, $cfg_user, $cfg_pass, $cfg_db); // zainicjalizuj pozosta³e klasy $validation = new Validation('../dict/vulgarism.txt'); $tokenizer = new Tokenizer('../dict/stoplist.txt'); $fsaa = new Fsaa('../dict/lort_acc_full.fsa'); $fsas = new Fsas('../dict/lort_acc_full.fsa'); $fsal = new Fsal('../dict/llems_full.fsa'); $pspell_config = pspell_config_create("pl"); pspell_config_ignore($pspell_config, 4); pspell_config_mode($pspell_config, PSPELL_FAST); pspell_config_runtogether($pspell_config, false); $pspell_link = pspell_new_config($pspell_config); // uruchomienie stopera, rozpoczêcie zbierania danych czasowych $stoper = new Timer(); // pobierz zbiór wyników $res = $db->query("SELECT * FROM comment_{$cfg_tab} WHERE type = 'OK' ORDER BY id"); while ($row = $res->fetch_row()) { list($id, $comment, $type) = $row; //echo $comment; $stoper->set('query');