Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
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');