Italian stemmer added

Akshat Kukreti [2012-09-14 00:Sep:th]
Italian stemmer added

Signed-off-by: Chris Pollett <chris@pollett.org>
Filename
locale/it/resources/tokenizer.php
tests/it_stemmer_test.php
tests/test_files/italian_stemmer/output2.txt
tests/test_files/italian_stemmer/voc2.txt
diff --git a/locale/it/resources/tokenizer.php b/locale/it/resources/tokenizer.php
index d5e4732e2..97020f70b 100755
--- a/locale/it/resources/tokenizer.php
+++ b/locale/it/resources/tokenizer.php
@@ -41,5 +41,703 @@ if(!defined('BASE_DIR')) {echo "BAD REQUEST"; exit();}
  * @subpackage locale
  */

-$CHARGRAMS['it'] = 5;
+class ItStemmer
+{   /**
+     * Storage used in computing the stem
+     * @var string
+     */
+    static $buffer;
+
+    /**
+     * Storage used in computing the starting index of region R1
+     * @var int
+     */
+    static $r1_start;
+
+    /**
+     * Storage used in computing the starting index of region R2
+     * @var int
+     */
+    static $r2_start;
+
+    /**
+     * Storage used in computing the starting index of region RV
+     * @var int
+     */
+    static $rv_start;
+
+    /**
+     * Storage used in computing region R1
+     * @var string
+     */
+    static $r1_string;
+
+    /**
+     * Storage used in computing region R2
+     * @var string
+     */
+    static $r2_string;
+
+    /**
+     * Storage used in computing Region RV
+     * @var string
+     */
+    static $rv_string;
+
+    /**
+     * Storage for computing the starting position for the longest suffix
+     * @var int
+     */
+    static $max_suffix_pos;
+
+    /**
+     * Storage used in determinig if step1 removed any endings from the word
+     * @var bool
+     */
+    static $step1_changes;
+
+    /**
+     * Computes the stem of an Italian word
+     * Example guardando,guardandogli,guardandola,guardano all stem to guard
+     *
+     * @param string $word is the word to be stemmed
+     * @return string stem of $word
+     */
+    static function stem($word)
+    {
+        self::$buffer = $word;
+        self::$step1_changes = false;
+        self::$max_suffix_pos = -1;
+
+        self::prelude();
+        self::step0();
+        self::step1();
+        self::step2();
+        self::step3a();
+        self::step3b();
+        self::postlude();
+
+        return self::$buffer;
+    }
+
+    /**
+     * Checks if a string is a suffix for another string
+     *
+     * @param $parent_string is the string in which we wish to find the suffix
+     * @param $substring is the suffix we wish to check
+     * @return $pos as the starting position of the suffix $substring in
+     * $parent_string if it exists, else false
+     */
+    static function checkForSuffix($parent_string,$substring)
+    {
+        $pos = strrpos($parent_string,$substring);
+        if($pos !== false &&
+           (strlen($parent_string) - $pos == strlen($substring)))
+            return $pos;
+        else
+            return false;
+    }
+
+    /**
+     * Checks if a string occurs in another string
+     *
+     * @param $string is the parent string
+     * @param $substring is the string checked to be a sub-string of $string
+     * @return bool if $substring is a substring of $string
+     */
+    static function in($string,$substring)
+    {
+        $pos = strpos($string,$substring);
+        if($pos !== false)
+            return true;
+        else
+            return false;
+    }
+
+    /**
+     * Computes the starting index for region R1
+     *
+     * @param $string is the string for which we wish to find the index
+     * @return $r1_start as the starting index for R1 for $string
+     */
+    static function r1($string)
+    {
+       $r1_start = -1;
+       for($i = 0; $i < strlen($string); $i++){
+           if($i >= 1){
+               if(self::isVowel($string[$i - 1]) &&
+                  !self::isVowel($string[$i])){
+                   $r1_start = $i + 1;
+                    break;
+                }
+            }
+        }
+        if($r1_start != -1){
+            if($r1_start > strlen($string) - 1)
+                $r1_start = -1;
+            else{
+                if($string[$r1_start] == "`")
+                    $r1_start += 1;
+            }
+        }
+
+        return $r1_start;
+    }
+
+    /**
+     * Computes the starting index for region R2
+     *
+     * @param $string is the string for which we wish to find the index
+     * @return $r2_start as the starting index for R1 for $string
+     */
+    static function r2($string)
+    {
+        $r2_start = -1;
+        $r1_start = self::r1($string);
+
+        if($r1_start !== -1){
+            for($i = $r1_start; $i < strlen($string); $i++){
+                if($i >= $r1_start + 1){
+                    if(self::isVowel($string[$i-1]) &&
+                       !self::isVowel($string[$i])){
+                        $r2_start = $i + 1;
+                        break;
+                    }
+                }
+            }
+        }
+        if($r2_start != -1){
+            if($r2_start > strlen($string) - 1)
+                $r2_start = -1;
+            else{
+                if($string[$r2_start] == "`")
+                    $r2_start += 1;
+            }
+        }
+
+        return $r2_start;
+    }
+
+    /**
+     * Computes the starting index for region RV
+     *
+     * @param $string is the string for which we wish to find the index
+     * @return $rv_start as the starting index for RV for $string
+     */
+    static function rv($string)
+    {
+        $i = 0;
+        $j = 1;
+        $rv_start = -1;
+
+        $length = strlen($string);
+
+        if($length <= 2)
+            $rv_start = -1;
+        else{
+            if(self::isVowel($string[$j])){
+                if(self::isVowel($string[$i])){
+                    for($k = $j + 1; $k < $length; $k++){
+                        if(!self::isVowel($string[$k])){
+                            $rv_start = $k + 1;
+                            break;
+                        }
+                    }
+                }
+                else{
+                    $rv_start = 3;
+                }
+            }
+            else{
+                for($k = $j + 1; $k < $length; $k++){
+                    if(self::isVowel($string[$k])){
+                        $rv_start = $k + 1;
+                        break;
+                    }
+                }
+            }
+        }
+        if($rv_start != -1){
+            if($rv_start >= $length)
+                $rv_start = -1;
+            else{
+                if($string[$rv_start] == "`")
+                    $rv_start += 1;
+            }
+        }
+
+        return $rv_start;
+    }
+
+    /**
+     * Computes regions R1, R2 and RV in the form
+     * strings. $r1_string, $r2_string, $r3_string for R1,R2 and R3
+     * repectively
+     */
+    static function getRegions()
+    {
+        if((self::$r1_start = self::r1(self::$buffer)) != -1)
+            self::$r1_string = substr(self::$buffer,self::$r1_start);
+        else
+            self::$r1_string = null;
+        if((self::$r2_start = self::r2(self::$buffer)) != -1)
+            self::$r2_string = substr(self::$buffer,self::$r2_start);
+        else
+            self::$r2_string = null;
+        if((self::$rv_start = self::rv(self::$buffer)) != -1)
+            self::$rv_string = substr(self::$buffer,self::$rv_start);
+        else
+            self::$rv_string = null;
+    }
+
+    /**
+     * Checks if a character is a vowel or not
+     *
+     * @param $char is the character to be checked
+     * @return bool if $char is a vowel
+     */
+    static function isVowel($char)
+    {
+        switch($char)
+        {
+            case "U": case "I": case "`":
+                return false;
+
+            case "a": case "e": case "i": case "o": case "u":
+                return true;
+        }
+    }
+
+    /**
+     * Computes the longest suffix for a given string from a given set of
+     * suffixes
+     *
+     * @param $string is the for which the maximum suffix is to be found
+     * @param $suffixes is an array of suffixes
+     * @return $max_suffix is the longest suffix for $string
+     */
+    static function maxSuffix($string,$suffixes)
+    {
+        $max_length = 0;
+        $max_suffix = null;
+
+        foreach($suffixes as $suffix){
+            $pos = strrpos($string,$suffix);
+            if($pos !== false){
+                $string_tail = substr($string,$pos);
+                $suffix_length = strlen($suffix);
+                if(!strcmp($string_tail,$suffix)){
+                    if($suffix_length > $max_length){
+                        $max_suffix = $suffix;
+                        $max_length = $suffix_length;
+                        self::$max_suffix_pos = $pos;
+                    }
+                }
+            }
+        }
+
+        return $max_suffix;
+    }
+
+    /**
+     * Replaces all acute accents in a string by grave accents and also handles
+     * accented characters
+     *
+     * @param $string is the string from in which the acute accents are to be
+     * replaced
+     * @return $string with changes
+     */
+    static function acuteByGrave($string)
+    {
+        $pattern2 = array("/á/","/é/","/ó/","/ú/","/è/","/ì/","/ò/","/ù/",
+                          "/à/","/í/");
+        $replacement = array("a`","e`","o`","u`","e`","i`","o`","u`","a`","i`");
+        $string = preg_replace($pattern2,$replacement,$string);
+        return($string);
+    }
+
+    /**
+     * Performs the following functions:
+     * Replaces acute accents with grave accents
+     * Marks u after q and u,i preceded and followed by a vowel as a non vowel
+     * by converting to upper case
+     */
+    static function prelude()
+    {
+        $pattern_array = array("/Qu/","/qu/");
+        $replacement_array = array("QU","qU");
+
+        //Replace acute accents by grave accents
+        self::$buffer = self::acuteByGrave(self::$buffer);
+
+        /**
+         * Convert u preceded by q and u,i preceded and followed by vowels
+         * to upper case to mark them as non vowels
+         */
+        self::$buffer = preg_replace($pattern_array,$replacement_array,
+                       self::$buffer);
+        for($i = 0; $i < strlen(self::$buffer) - 1; $i++){
+            if($i >= 1 && (self::$buffer[$i] == "i" ||
+                           self::$buffer[$i] == "u")){
+                if(self::isVowel(self::$buffer[$i-1]) &&
+                   self::isVowel(self::$buffer[$i+1]) &&
+                   self::$buffer[$i+1] !== '`')
+                    self::$buffer[$i] = strtoupper(self::$buffer[$i]);
+            }
+        }
+    }
+
+    /**
+     * Handles attached pronoun
+     */
+    static function step0()
+    {
+        $max = 0;
+        $suffixes = array("ci","gli","la","le","li","lo",
+            "mi","ne","si","ti","vi","sene",
+            "gliela","gliele","glieli","glielo",
+            "gliene","mela","mele","meli","melo",
+            "mene","tela","tele","teli","telo",
+            "tene","cela","cele","celi","celo",
+            "cene","vela","vele","veli","velo","vene");
+        $phrases = array("ando","endo","ar","er","ir");
+
+        //Get R1, R2, RV
+        self::getRegions();
+
+        //Find the maximum length suffix in the string
+        $max_suffix = self::maxSuffix(self::$rv_string,$suffixes);
+
+        if($max_suffix != null){
+            $sub_string = substr(self::$rv_string,0,-strlen($max_suffix));
+
+            foreach($phrases as $phrase){
+                if(self::checkForSuffix($sub_string,$phrase) !== false){
+                    switch($phrase)
+                    {
+                        case "ando": case "endo":
+                            self::$buffer = substr_replace(self::$buffer,"",
+                                self::$rv_start + self::$max_suffix_pos,
+                                strlen($max_suffix));
+                            break;
+                        case "ar": case "er": case "ir":
+                            self::$buffer = substr_replace(self::$buffer,"e",
+                                self::$rv_start + self::$max_suffix_pos,
+                                strlen($max_suffix));
+                            break;
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Handles standard suffixes
+     */
+    static function step1()
+    {
+        $suffixes = array("anza","anze","ico","ici","ica",
+            "ice","iche","ichi","ismo","ismi",
+            "abile","abili","ibile","ibili","ista",
+            "iste","isti","ista`","iste`","isti`",
+            "oso","osi","osa","ose","mente","atrice",
+            "atrici","ante","anti","azione","azioni",
+            "atore","atori","logia","logie","uzione",
+            "uzioni","usione","usioni","enza","enze",
+            "amento","amenti","imento","imenti","amente",
+            "ita`","ivo","ivi","iva","ive");
+
+        //Get R1,R2 and RV
+        self::getRegions();
+
+        //Find the longest suffix
+        $max_suffix = self::maxSuffix(self::$buffer,$suffixes);
+
+        //Handle suffix according
+        switch($max_suffix)
+        {
+
+            case "anza": case "anze": case "ico": case "ici": case "ica":
+            case "ice": case "iche": case "ichi": case "ismo": case "ismi":
+            case "abile": case "abili": case "ibile": case "ibili":
+            case "ista": case "iste": case "isti": case "ista`": case "iste`":
+            case "isti`": case "oso": case"osi": case "osa": case "ose":
+            case "mente": case "atrice": case "atrici": case "ante":
+            case "anti":
+
+                //Delete if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                break;
+
+            case "azione": case "azioni": case "atore": case "atori":
+
+                //Delete if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                self::getRegions();
+                //If preceded by ic, delete if in R2
+                if(self::checkForSuffix(self::$buffer,"ic")){
+                    if(self::in(self::$r2_string,"ic")){
+                        self::$buffer = str_replace("ic","",self::$buffer);
+                        self::$step1_changes = true;
+                    }
+                }
+                break;
+
+            case "logia": case "logie":
+
+                //Replace with log if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"log",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                break;
+
+            case "uzione": case "uzioni": case "usione": case "usioni":
+
+                //Replace with u if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"u",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                break;
+
+            case "enza": case "enze":
+
+                //Replace with ente if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"ente",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                break;
+
+            case "amento": case "amenti": case "imento": case "imenti":
+
+                //Delete if in RV
+                if(self::in(self::$rv_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                break;
+
+            case "amente":
+
+                //Delete if in R1
+                if(self::in(self::$r1_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                self::getRegions();
+                //Check if preceded by iv, if yes, delete if in R2
+                if(self::checkForSuffix(self::$buffer,"iv")){
+                    if(self::in(self::$r2_string,"iv")){
+                        self::$buffer = str_replace("iv","",self::$buffer);
+                        self::$step1_changes = true;
+                        if(self::checkForSuffix(self::$buffer,"at")){
+                            if(self::in(self::$r2_string,"at")){
+                                self::$buffer = str_replace("at","",
+                                                self::$buffer);
+                                self::$step1_changes = true;
+                            }
+                        }
+                    }
+                }
+                /**
+                 * Otherwise check if preceded by os,ic or abil, if yes,
+                 * delete if in r2
+                 */
+                else{
+                    self::getRegions();
+                    $further = array("os","ic","abil");
+                    foreach($further as $suffix){
+                        $pos = self::checkForSuffix(self::$buffer,$suffix);
+                        if($pos !== false){
+                            if(self::in(self::$r2_string,$suffix)){
+                                self::$buffer = substr_replace(self::$buffer,
+                                                "",$pos);
+                                self::$step1_changes = true;
+                            }
+                        }
+                    }
+                }
+                break;
+
+            case "ita`":
+
+                //Delete if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                //If further preceded by abil,ic or iv, delete if in R2
+                self::getRegions();
+                $further = array("abil","ic","iv");
+                foreach($further as $suffix){
+                    if(self::checkForSuffix(self::$buffer,$suffix)){
+                        if(self::in(self::$r2_string,$suffix)){
+                            self::$buffer = str_replace($suffix,"",
+                                            self::$buffer);
+                            self::$step1_changes = true;
+                        }
+                    }
+                }
+
+            case "ivo": case "ivi": case "iva": case "ive":
+                //Delete if in R2
+                if(self::in(self::$r2_string,$max_suffix)){
+                    self::$buffer = substr_replace(self::$buffer,"",
+                                    self::$max_suffix_pos,strlen($max_suffix));
+                    self::$step1_changes = true;
+                }
+                //If preceded by at, delete if in R2
+                self::getRegions();
+                $pos = self::checkForSuffix(self::$buffer,"at");
+                if($pos !== false){
+                    if(self::in(self::$r2_string,"at")){
+                        self::$buffer = substr_replace(self::$buffer,"",$pos,2);
+                        self::$step1_changes = true;
+                        //If further preceded by ic, delete if in R2
+                        self::getRegions();
+                        $pos = self::checkForSuffix(self::$buffer,"ic");
+                        if($pos !== false){
+                            if(self::in(self::$r2_string,"ic")){
+                                self::$buffer = substr_replace(self::$buffer,"",
+                                                $pos,2);
+                                self::$step1_changes = true;
+                            }
+                        }
+                    }
+                }
+        }
+    }
+
+    /**
+     * Handles verb suffixes
+     */
+    static function step2()
+    {
+        $verb_suffixes = array("ammo","ando","ano","are","arono","asse",
+            "assero","assi","assimo","ata","ate","ati",
+            "ato","ava","avamo","avano","avate","avi","avo",
+            "emmo","enda","ende","endi","endo","era`",
+            "erai","eranno","ere","erebbe","erebbero",
+            "erei","eremmo","eremo","ereste","eresti",
+            "erete","ero`","erono","essero","ete","eva",
+            "evamo","evano","evate","evi","evo","Yamo",
+            "iamo","immo","ira`","irai","iranno","ire",
+            "irebbe","irebbero","irei","iremmo","iremo",
+            "ireste","iresti","irete","iro`","irono","isca",
+            "iscano","isce","isci","isco","iscono","issero",
+            "ita","ite","iti","ito","iva","ivamo","ivano",
+            "ivate","ivi","ivo","ono","uta","ute","uti",
+            "uto","ar","ir");
+
+        /**
+         * If no ending was removed in step1, find the longest suffix from the
+         * above suffixes and delete if in RV
+         */
+        if(!self::$step1_changes){
+            //Get R1,R2 and RV
+            self::getRegions();
+
+            $max_suffix = self::maxSuffix(self::$rv_string,$verb_suffixes);
+            if(self::in(self::$rv_string,$max_suffix))
+                self::$buffer = substr_replace(self::$buffer,"",
+                    self::$rv_start + self::$max_suffix_pos,
+                    strlen($max_suffix));
+        }
+    }
+
+    /**
+     * Deletes a final a,e,i,o,a`,e`,i`,o` and a preceding i if in RV
+     */
+    static function step3a()
+    {
+        $vowels = array ("a","e","i","o","a`","e`","i`","o`");
+
+        //Get R1,R2 and RV
+        self::getRegions();
+
+        //If a character from the above is found in RV, delete it
+        foreach($vowels as $character){
+            $pos = self::checkForSuffix(self::$buffer,$character);
+            if($pos !== false){
+                if(self::in(self::$rv_string,$character)){
+                    self::$buffer = substr_replace(self::$buffer,"",$pos,
+                                    strlen($character));
+                    break;
+                }
+            }
+        }
+        //If preceded by i, delete if in RV
+        self::getRegions();
+        $pos = self::checkForSuffix(self::$buffer,"i");
+        if($pos !== false){
+            if(self::in(self::$rv_string,"i"))
+                self::$buffer = substr_replace(self::$buffer,"",$pos,1);
+        }
+    }
+
+    /**
+     * Replaces a final ch/gh by c/g if in RV
+     */
+    static function step3b()
+    {
+        //Get R1,R2 and RV
+        self::getRegions();
+
+        //Replace final ch/gh with c/g if in RV
+        $patterns = array("ch","gh");
+        foreach($patterns as $pattern){
+            switch($pattern)
+            {
+                case "ch":
+                    $pos = self::checkForSuffix(self::$buffer,$pattern);
+                    if($pos !== false){
+                        if(self::in(self::$rv_string,$pattern))
+                            self::$buffer = substr_replace(self::$buffer,
+                                            "c",$pos);
+                    }
+                    break;
+
+                case "gh":
+                    $pos = self::checkForSuffix(self::$buffer,$pattern);
+                    if($pos !== false){
+                        if(self::in(self::$rv_string,$pattern))
+                            self::$buffer = substr_replace(self::$buffer,
+                                            "g",$pos);
+                    }
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Converts U and/or I back to lowercase
+     */
+    static function postlude()
+    {
+        $pattern_array_1 = array("/U/","/I/");
+        $replacement_array_1 = array("u","i");
+        $pattern_array_2 = array("/a`/","/e`/","/i`/","/o`/","/u`/");
+        $replacement_array_2 = array("à","è","ì","ò","ù");
+        self::$buffer = preg_replace($pattern_array_1,$replacement_array_1,
+                        self::$buffer);
+        self::$buffer = preg_replace($pattern_array_2,$replacement_array_2,
+                        self::$buffer);
+    }
+}
 ?>
diff --git a/tests/it_stemmer_test.php b/tests/it_stemmer_test.php
new file mode 100644
index 000000000..79a5e0218
--- /dev/null
+++ b/tests/it_stemmer_test.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009 - 2012  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage test
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009 - 2012
+ * @filesource
+ */
+
+if(!defined('BASE_DIR')) {echo "BAD REQUEST"; exit();}
+
+/**
+ *  Load the Italian stemmer
+ */
+require_once BASE_DIR.'/locale/it/resources/tokenizer.php';
+/**
+ *  Load the run function
+ */
+require_once BASE_DIR.'/lib/unit_test.php';
+
+/**
+ * My code for testing the Italian stemming algorithm. The inputs for the
+ * algorithm are words in
+ * http://snowball.tartarus.org/algorithms/italian/voc.txt and the resulting
+ * stems are compared with the stem words in
+ * http://snowball.tartarus.org/algorithms/italian/output.txt
+ *
+ * @author Akshat Kukreti
+ */
+
+class ItStemmerTest extends UnitTest
+{    public function setUp()
+    {
+        $this->test_objects['FILE1'] = new ItStemmer();
+    }
+
+    public function tearDown()
+    {
+    }
+
+    /**
+     * Tests whether the stem funtion for the Italian stemming algorithm
+     * stems words according to the rules of stemming. The function tests stem
+     * by calling stem with the words in $test_words and compares the results
+     * with the stem words in $stem_words
+     *
+     * $test_words is an array containing a set of words in Italian provided in
+     * the snowball web page
+     * $stem_words is an array containing the stems for words in $test_words
+     */
+    public function stemmerTestCase()
+    {
+        $stem_dir = BASE_DIR.'/tests/test_files/italian_stemmer';
+
+        //Test word set from snowball
+        $test_words = file("$stem_dir/voc2.txt");
+
+        //Stem word set from snowball for comparing results
+        $stem_words = file("$stem_dir/output2.txt");
+
+        /**
+         * check if function stem correctly stems the words in $test_words by
+         * comparing results with stem words in $stem_words
+         */
+        for($i = 0; $i < count($test_words); $i++){
+            $word = trim($test_words[$i]);
+            $stem = trim($stem_words[$i]);
+            $this->assertEqual(
+                $this->test_objects['FILE1']->stem($word),
+                    $stem,"function stem correctly stems
+                    $word to $stem");
+        }
+    }
+}
+?>
diff --git a/tests/test_files/italian_stemmer/output2.txt b/tests/test_files/italian_stemmer/output2.txt
new file mode 100644
index 000000000..32b6ae9d6
--- /dev/null
+++ b/tests/test_files/italian_stemmer/output2.txt
@@ -0,0 +1,3220 @@
+antonomas
+antonov
+antonucc
+antrac
+antti
+anul
+anvers
+anya
+anzi
+anzian
+anzian
+anzian
+anzian
+anzi
+anzic
+anzi
+anzitutt
+aost
+aou
+ap
+aparecid
+apartheid
+apert
+apert
+apert
+apert
+apert
+apert
+apertur
+apertur
+apollon
+apologet
+apolog
+apolog
+apostrof
+appag
+appag
+appag
+appag
+appai
+appalt
+appalt
+appalt
+appalt
+appaluditissim
+appann
+appann
+appann
+appar
+appar
+apparecc
+apparecc
+apparecc
+apparecc
+apparecc
+apparecc
+apparecc
+apparecc
+apparecc
+appar
+apparent
+apparent
+apparent
+apparent
+apparent
+appar
+appar
+appar
+appariss
+apparitor
+apparitor
+appar
+appar
+apparizion
+apparizion
+appars
+appars
+appars
+appars
+appart
+appart
+appart
+appartenent
+appartenent
+appartenent
+appartenent
+apparten
+apparten
+apparten
+apparteng
+apparteng
+appartien
+apparv
+apparver
+appassion
+appassion
+appassion
+appassion
+appassion
+appass
+appedonat
+appell
+appell
+appell
+appell
+appen
+append
+appesant
+appes
+appes
+appest
+appet
+appezz
+appiatt
+appiatt
+battezz
+battezz
+batt
+batt
+batticuor
+battig
+battiman
+battipaglies
+battist
+battistin
+battistrad
+batt
+batt
+batt
+batt
+battutt
+batuffolett
+baud
+baumann
+bav
+bavares
+baver
+bavier
+bay
+bayer
+bayerwerk
+bazz
+bazzecol
+bazzic
+bazzic
+bazzic
+bb
+bbc
+bc
+bca
+bco
+bd
+beac
+beat
+beatif
+beatl
+beat
+beatric
+beautiful
+beb
+bec
+becc
+becc
+beccat
+becchin
+becchin
+becc
+becc
+becker
+beff
+beffard
+beff
+beghett
+beghin
+begl
+beh
+bei
+beirut
+beit
+bel
+bel
+bel
+bel
+belfior
+belg
+belg
+belgrad
+beliaiev
+bell
+bell
+bell
+bellarditt
+bell
+beller
+bellezz
+bellezz
+bell
+bellic
+belliger
+belliger
+bellissim
+bellissim
+bellissim
+bell
+bellucc
+bellunes
+bellun
+belmond
+belson
+beltram
+belzebù
+bempens
+ben
+benaivedes
+benarr
+benaugur
+benavides
+benc
+benc
+bend
+ben
+benedett
+benedett
+benedett
+benedett
+benedett
+bened
+bened
+benedicil
+bened
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cercatel
+cerc
+cercator
+cerc
+cercavan
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerc
+cerciell
+cerciel
+cercl
+cerc
+cerc
+cercolavor
+cereal
+cerealicol
+cered
+cer
+cerimon
+cerimonial
+cerimon
+cerimon
+cerimon
+ceriol
+cernebantur
+cern
+cernobb
+cernomyrdin
+cernoriec
+cernusc
+ceron
+ceron
+cerr
+cert
+cert
+cert
+cert
+cert
+certezz
+certezz
+cert
+certific
+certif
+certissim
+certiusqu
+cert
+certun
+cerule
+ceruzz
+cervellacc
+cervell
+cervellin
+cervell
+cervell
+cervon
+cerzior
+cesalpin
+ces
+ces
+cesar
+cesen
+cesen
+cespugl
+cespugl
+cess
+cessan
+cess
+cess
+cessaron
+cess
+cess
+cess
+cess
+cess
+cess
+cess
+cess
+cessazion
+cess
+cession
+cess
+cetace
+ceteris
+cet
+cet
+cfi
+cgi
+cgi
+cgil
+ch
+cha
+challeng
+chamot
+champagn
+chang
+chanony
+chantal
+charasiab
+chariell
+dges
+dgl
+dhahran
+dhak
+dhzun
+di
+dì
+dia
+diabet
+diabol
+diabol
+diabol
+diaf
+diagnostic
+diagonal
+diahann
+dialett
+dializz
+dialog
+dialog
+diametr
+diamin
+diam
+diamogl
+dian
+dian
+dian
+diar
+diatrib
+diavoler
+diavoler
+diavolett
+diavol
+diavol
+dibatt
+dibatt
+dibatt
+dibatt
+dibatt
+dibatt
+dibatt
+dibatt
+dibattimental
+dibatt
+dibatt
+dibatt
+dic
+dic
+dican
+dic
+dicar
+dicaster
+dic
+dicembr
+dic
+dic
+dic
+dic
+dicess
+dic
+dicess
+dicest
+diceu
+dic
+dicevan
+dic
+dic
+dic
+dichair
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiar
+dichiazion
+dic
+diciam
+dic
+diciamol
+diciannovenn
+diciassettenn
+diciottenn
+diciott
+dicitor
+dicitur
+dic
+dicon
+dic
+dicotom
+didier
+die
+diè
+diec
+diecimil
+died
+dieder
+dieg
+diet
+dieter
+dietolog
+dietolog
+dietr
+dietrolog
+difatt
+difend
+enunc
+enunc
+enunc
+envireg
+enzo
+eolog
+ep
+epat
+ephraim
+epicentr
+epidem
+episcopal
+episcopal
+episod
+episod
+epitet
+epitet
+epoc
+epoc
+eppur
+epreoccup
+eprest
+epta
+eptabond
+eptacapital
+eptainternational
+eptamoney
+epulon
+eq
+equilibr
+equilibr
+equilibr
+equipagg
+equipagg
+equipar
+equipar
+equit
+equit
+equity
+equival
+equivalent
+equivalent
+equival
+equivoc
+equivoc
+equo
+er
+era
+eran
+eran
+eran
+erant
+erar
+eravam
+erav
+erba
+erbacc
+erbacc
+erbe
+erbos
+ercol
+ercol
+ered
+ered
+eredit
+ereditar
+eredit
+erem
+eress
+eret
+erett
+erett
+ergastol
+erge
+ergif
+ergo
+eric
+ericsson
+eridan
+erig
+erik
+erikkson
+eriksson
+erlanger
+ermellin
+ermet
+ermin
+ernest
+ero
+ero
+erog
+erog
+erog
+erog
+erog
+ero
+eroic
+eroic
+eroin
+eroism
+erot
+err
+errant
+errat
+errav
+errol
+error
+error
+error
+erta
+erte
+erto
+erudit
+erud
+erud
+fiat
+fiat
+fiat
+fiat
+fiat
+fiat
+fiat
+fibr
+fibr
+ficc
+ficcadent
+ficcan
+ficc
+ficc
+ficc
+ficc
+ficc
+ficc
+fiches
+fich
+fic
+fictas
+fid
+fid
+fidanz
+fidanz
+fid
+fid
+fid
+fid
+fid
+fid
+fidat
+fid
+fidatissim
+fid
+fidecommiss
+fide
+fideuram
+fid
+fid
+fidis
+fid
+fidon
+fiduc
+fiduc
+fiduciar
+fiel
+fien
+fier
+fier
+fier
+fierezz
+fier
+fierist
+fierist
+fierist
+fiesol
+figl
+figl
+figl
+figl
+figliol
+figliolett
+figliolett
+figliuol
+figliuol
+figliuol
+figliuol
+fignol
+figuero
+figur
+figuracc
+figur
+figur
+figur
+figur
+figurat
+figur
+figur
+figur
+figur
+figur
+figur
+figur
+figuriamoc
+figurin
+figur
+figur
+fikret
+fil
+fil
+filadelf
+filand
+filar
+filarmon
+filastrocc
+filaticc
+fil
+filatoi
+filator
+filatur
+fil
+files
+fil
+filial
+filic
+filigran
+filipovic
+filipp
+filippin
+filippin
+filipp
+film
+film
+gh
+ghafoor
+ghal
+ghennad
+gherm
+gheron
+ghett
+ghezz
+ghiacc
+ghiacc
+ghiai
+ghiai
+ghign
+ghirardell
+ghoober
+gi
+già
+giacart
+giacc
+giacc
+giac
+giac
+giac
+giac
+giac
+giac
+giacobb
+giacomel
+giacomell
+giacomin
+giacom
+gialappàs
+giall
+giall
+giall
+giall
+gialloblù
+giallognol
+gialloross
+gialloross
+giama
+giamaic
+giambr
+giamma
+giampaol
+giampier
+gian
+gianc
+gianfranc
+giangiacom
+gianluc
+gianluig
+giannanton
+giannatal
+giannett
+giann
+giannin
+giannin
+giannuzz
+gianpaol
+giappon
+giappones
+giappones
+giapppon
+giard
+giardin
+giardinett
+giardin
+giardin
+giardin
+gifim
+gigant
+gigantesc
+gigantesc
+gigant
+gig
+gigl
+gigl
+gil
+gilardin
+gillian
+gilly
+gim
+gin
+gin
+ginevr
+ginn
+ginnast
+gin
+ginocc
+ginocc
+ginocchion
+gioc
+gioc
+gioc
+gioc
+gioc
+gioc
+gioc
+giocator
+giocator
+giocator
+giocatric
+gioc
+giocavan
+gioc
+gioc
+gioc
+giochett
+gioc
+gioc
+giocolier
+giocond
+giocond
+giocond
+ha
+haapakost
+haaretz
+habb
+hackett
+haddad
+had
+haec
+hai
+haif
+hait
+haley
+halifax
+hallar
+halloween
+hamac
+hamas
+hamburgher
+hammall
+hammamet
+hammaqu
+hammed
+hampel
+han
+hanak
+handicap
+handicapp
+handicapp
+hann
+hann
+hannah
+hann
+hano
+hans
+harald
+har
+harbour
+harig
+haris
+harjann
+har
+harrison
+hashem
+hau
+hauer
+hau
+hauess
+hauessim
+haueu
+haustam
+hau
+havr
+hawai
+hays
+hazzard
+heads
+hearts
+hebron
+heimat
+hekmaty
+held
+helen
+helen
+helgenberger
+helmut
+helsink
+hemmings
+heniz
+henrik
+henry
+hepburn
+herald
+herb
+hero
+hero
+herrer
+herv
+herzog
+hezb
+hibernian
+highlander
+hillman
+hill
+hills
+hiroyuk
+his
+hisp
+hist
+histor
+historia
+hitler
+hlen
+ho
+hoc
+hockey
+hoffman
+hold
+holding
+holly
+hollywood
+hollywood
+holm
+homefront
+homer
+honest
+honestas
+hong
+honolulu
+hood
+hooker
+horror
+horst
+horthy
+hospital
+hossack
+impegn
+impegn
+impegn
+impegn
+impegn
+impegn
+impegnin
+impegn
+impegn
+impenetr
+impenn
+impenn
+impens
+impens
+impens
+impens
+imper
+imperator
+imper
+impercett
+imperciocc
+imperdon
+imperfett
+imperfettion
+imperfett
+imperfezion
+imper
+imperial
+imperies
+imper
+imper
+imper
+imper
+imperscrut
+imperterr
+impertinent
+imperturb
+imperturb
+impervers
+impervers
+impet
+impetr
+impetu
+impetu
+impetu
+impetu
+imphal
+impiant
+impiant
+impiastr
+impiastr
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicc
+impicciavan
+impicc
+impiccion
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impieg
+impiegatov
+impieg
+impieg
+impieg
+impieg
+impigr
+impip
+impip
+implac
+implic
+implic
+implic
+implic
+implic
+implicit
+implor
+implor
+implor
+implor
+implor
+implor
+imploravan
+implor
+implor
+implor
+impon
+impon
+impon
+imponent
+imponess
+impon
+impon
+impong
+impon
+irrespons
+irrevers
+irreversibil
+irrevoc
+irrevocabil
+irriduc
+irrig
+irrilev
+irris
+irrisolt
+irrit
+irrit
+irrit
+irrit
+irrit
+irritual
+irritual
+irrog
+irruenz
+irruzion
+irsut
+irti
+isabel
+isai
+isalm
+isbagl
+isbiec
+isbrig
+iscacc
+iscacc
+iscandol
+iscans
+iscans
+iscans
+iscapit
+iscapol
+iscapp
+iscapp
+isceglier
+ischern
+ischerz
+ischi
+ischiamazz
+ischier
+ischium
+isconficc
+iscont
+iscont
+iscopr
+iscopr
+iscorg
+iscritt
+iscritt
+iscritt
+iscritt
+iscriv
+iscriver
+iscriv
+iscrizion
+iscus
+ise
+isef
+isfog
+isfogg
+isgarbatezz
+isgrav
+isguard
+isguard
+isgusc
+isla
+islam
+islamabad
+islam
+islam
+islamic
+islam
+islam
+islamiy
+islanc
+island
+isman
+ismarr
+ismett
+ismov
+isol
+isol
+isol
+isol
+isol
+isol
+ispall
+ispavent
+ispavent
+ispec
+ispegn
+ispend
+ispes
+ispettor
+ispettor
+ispettor
+ispezion
+ispian
+ispi
+ispid
+ispieg
+ispinger
+isping
+ispir
+ispir
+ispir
+ispir
+ispir
+ispir
+ispir
+ispir
+jackson
+jacob
+jacobsen
+jacquelin
+jahan
+jaim
+jama
+jamaat
+james
+jammin
+jan
+jan
+janeir
+janet
+janez
+jann
+janowsk
+jansson
+jaquelin
+jarn
+javier
+jean
+jeann
+jechn
+jeep
+jeff
+jefferson
+jelees
+jemis
+jennifer
+jenny
+jens
+jerry
+jervolin
+jessic
+jet
+jfk
+ji
+jiahu
+jibril
+jihad
+jijel
+jill
+jim
+jimenez
+jimmy
+joachim
+joaquin
+jocelyn
+joe
+johan
+johann
+johannesburg
+john
+johnson
+joint
+jolly
+joly
+jon
+jonas
+jonathan
+jones
+jonk
+jorg
+jos
+jos
+josef
+joseph
+joseph
+jospin
+jr
+juan
+jugoslav
+jugovic
+juh
+juic
+jul
+julian
+jul
+julieth
+junior
+juniores
+jupp
+jur
+jut
+juv
+juventin
+juventus
+k
+kabar
+kabul
+kaddoum
+kaelon
+kakrab
+kal
+kalashikov
+kalpakkam
+kamb
+kamikaz
+kanchanabur
+kankkunen
+kaos
+karac
+karadzic
+karaok
+karel
+karim
+karlsruh
+karlstad
+kashm
+kashogg
+kastros
+kawashim
+kazakhstan
+kelly
+kovac
+kowank
+kozminsk
+kraftnat
+krajin
+krajn
+krasnov
+kreek
+kris
+krsko
+kruj
+krup
+kruz
+krzystof
+kual
+kulikov
+kung
+kupr
+kurt
+kuwait
+kvashnin
+kw
+kwh
+l
+la
+là
+labbr
+labbr
+laberint
+labirint
+laborator
+labr
+labur
+labur
+lacandon
+lacc
+lacer
+lacer
+lac
+lacer
+lacon
+lacqu
+lacrim
+lacrim
+lacrimogen
+lacrim
+ladr
+ladr
+ladron
+ladron
+ladron
+laender
+laerz
+lafert
+lagat
+lagest
+laggiu
+laggiù
+lagn
+lagn
+lagn
+lag
+lagosten
+lagrim
+lagrim
+laical
+laic
+laic
+laicit
+laic
+laid
+lak
+lalas
+lam
+lamacc
+laman
+lamand
+lambert
+lambert
+lambicc
+lambr
+lam
+lament
+lament
+lament
+lament
+lament
+lament
+lament
+lamentevol
+lament
+lament
+lamet
+lamez
+lam
+lamin
+lamort
+lampad
+lampad
+lampant
+lampant
+lampegg
+lampegg
+lamp
+lamp
+lampon
+lampugn
+lan
+lancaster
+lanc
+lancer
+lanc
+lanc
+lancia
+lanc
+lords
+loredan
+loren
+lorenzin
+lorenz
+loret
+lor
+lorier
+lor
+los
+los
+losann
+losc
+loset
+lott
+lott
+lott
+lott
+lotter
+lott
+lottizz
+lott
+louis
+lourdes
+lov
+lovely
+lp
+lq
+lr
+lt
+lu
+luand
+luc
+luc
+luc
+lucarell
+lucc
+lucches
+lucchett
+lucchett
+lucc
+lucchin
+lucc
+luccic
+luccic
+luccic
+lucciol
+luc
+lucent
+lucent
+lucern
+luc
+luchett
+luchin
+luc
+luc
+lucian
+luc
+lucid
+lucid
+lucid
+lucignol
+lucill
+luc
+lucrez
+lucros
+lueders
+lufthans
+lugl
+lug
+lugubr
+lui
+luig
+luigiterz
+luin
+luis
+luis
+luis
+lumbard
+lum
+lumegg
+lumegg
+lumezzan
+lum
+lumicin
+lum
+lumpur
+lun
+lun
+lunar
+lunar
+luned
+lunedì
+lunedìper
+lunett
+lung
+lungagn
+lung
+lung
+lunghett
+lunghezz
+lung
+lunghign
+lunghissim
+lunghissim
+lung
+lungimir
+lungimir
+lung
+lunin
+luoc
+luog
+luog
+luogotenent
+luogotenent
+matte
+matteol
+matteott
+matterell
+matteucc
+matt
+mattin
+mattin
+mattin
+mattiol
+matt
+matton
+matton
+mattutin
+matun
+matur
+matur
+matur
+matur
+matur
+matur
+matur
+matur
+matur
+mauritan
+mauriz
+maur
+mausole
+max
+maxiall
+maxim
+maximum
+maxiordin
+maxischerm
+may
+mayer
+mayock
+mays
+mazent
+mazzant
+mazzantin
+mazze
+mazzett
+mazzett
+mazz
+mazzol
+mazzon
+mb
+mc
+mccartney
+mcquinn
+mdp
+me
+mea
+mean
+meazz
+mecc
+meccan
+meccan
+meccan
+meccan
+meccan
+meccanizz
+mec
+med
+med
+medagl
+medagl
+medail
+medesim
+medesim
+medesim
+medesim
+medesim
+medesm
+med
+med
+mediant
+med
+mediator
+mediatric
+mediazion
+medic
+medic
+medic
+medice
+medic
+medicin
+medicinal
+medicinal
+medicin
+medic
+med
+med
+mediob
+mediobanc
+mediocr
+mediocred
+mediocr
+mediocr
+mediocr
+mediolan
+mediolog
+mediomassim
+medioriental
+med
+medit
+medit
+medit
+medit
+medit
+medit
+mediterane
+mediterrane
+mediterrane
+nom
+nomin
+nominal
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nomin
+nominit
+nomin
+nomin
+nomism
+non
+nonc
+noncur
+noncur
+nondimen
+nones
+nonf
+non
+nonn
+nonn
+nonn
+nonosolomod
+nonost
+nonsolomod
+norbert
+nord
+nordafrican
+nordamer
+nordcapital
+nordfond
+nordic
+nord
+nordist
+nordital
+nordmix
+norg
+norm
+normal
+normal
+normal
+normalizz
+normal
+normat
+normat
+norm
+norsk
+north
+norveges
+norveges
+norveg
+nos
+nosed
+nost
+nostr
+nostr
+nostr
+nostr
+not
+notabil
+notabil
+notabil
+notai
+not
+not
+not
+not
+notar
+notaril
+notaristef
+not
+notar
+not
+not
+not
+not
+notavan
+notazion
+not
+notevol
+notevol
+notevol
+not
+noticin
+notific
+notissim
+notit
+notiz
+notiz
+notiz
+notiziar
+notiziar
+notiz
+not
+notoriet
+notr
+nott
+nott
+nott
+nott
+nottingham
+notturn
+notturn
+nov
+nov
+novant
+oggi
+oggigiorn
+ogn
+ogni
+ogniun
+ognun
+ognun
+ognun
+oh
+ohe
+ohi
+ohim
+oib
+oil
+ok
+olà
+olaf
+oland
+olandes
+olandes
+olbi
+olces
+ole
+oleg
+oleodott
+olev
+olid
+oligarc
+oligarc
+oligopol
+olimpiad
+olimp
+olimp
+olimp
+oli
+oliseh
+oliv
+olivares
+oliv
+oliveir
+olivell
+olivett
+olivier
+olmi
+olocaust
+olof
+olon
+olp
+oltragg
+oltre
+oltrec
+oltremod
+oltreoc
+oltrepass
+oltrepass
+oltrepass
+oltretutt
+oltreutt
+om
+omacc
+omagg
+omagg
+omar
+ombra
+ombre
+ombrell
+ombrell
+ombrett
+ombros
+ombros
+omel
+omer
+omess
+omess
+omett
+omiciattol
+omicid
+omicid
+omicid
+omicid
+omicid
+omin
+omni
+omnitel
+omogene
+omogene
+omolog
+omolog
+omolog
+omonim
+omonim
+omosessual
+omosessual
+on
+once
+onci
+ond
+onda
+ondat
+ondat
+onde
+ondegg
+ondegg
+ondegg
+ondos
+oner
+onest
+onest
+onest
+onest
+onest
+ong
+onnin
+onnipresent
+onofr
+passegg
+passegg
+passeggier
+passegg
+passeggier
+passeggier
+pass
+pass
+pass
+pass
+passerell
+pass
+pass
+pass
+passibil
+passim
+passin
+passion
+passion
+passion
+pass
+pass
+pass
+passler
+pass
+pass
+past
+pastar
+pastar
+past
+pasticc
+pasticc
+pasticc
+pastigl
+pastigl
+pastin
+past
+pastocc
+pastoral
+pastoral
+pastor
+pastor
+pastoriz
+pastur
+pat
+patat
+pat
+patavin
+patent
+patent
+patern
+patern
+patern
+patern
+patern
+paternostr
+paterson
+patet
+pat
+pat
+patin
+patin
+pat
+pat
+pat
+patiscan
+pat
+pat
+pat
+pat
+pat
+pat
+patolog
+patolog
+patr
+patria
+patriarc
+patrick
+patrimon
+patrimon
+patriz
+patrocin
+patron
+pattegg
+patt
+pattinagg
+pattin
+patt
+pattugl
+pattugl
+pattu
+paul
+paul
+paul
+paur
+pauracc
+paur
+pauros
+pauros
+paus
+pav
+pavan
+pavel
+pav
+pav
+pav
+pavon
+paxton
+pazient
+pazient
+pazienz
+pazzagl
+pazz
+pazz
+pazz
+prest
+prest
+prest
+preston
+presum
+presumibil
+presum
+presunt
+presunt
+presunt
+presunt
+presunzion
+presuppost
+presuppost
+presutt
+pret
+pret
+pretender
+pretend
+pretendess
+pretend
+pretend
+pretend
+pret
+pretendiam
+pretend
+pret
+pretend
+pretension
+pretension
+pretes
+pretes
+pretest
+pretest
+pret
+pretor
+pretor
+pretorian
+prett
+prett
+preussenelektr
+prevalent
+prevalent
+prevalent
+prevalent
+preval
+preval
+prevalg
+prevalg
+prevals
+prevals
+prevals
+prevaric
+prevar
+preved
+preved
+preveder
+preved
+preved
+preved
+preved
+preved
+preved
+preved
+preved
+preved
+preved
+preven
+preven
+preven
+prevenn
+prevent
+prevent
+preven
+prevenzion
+prevident
+prevident
+previdenz
+prevident
+previdenzial
+previdenzial
+prevision
+prevision
+previst
+previst
+previst
+previst
+prev
+prevot
+prezios
+prezios
+prezios
+preziosissim
+prezios
+prezz
+prezz
+pri
+prigion
+prigion
+prigion
+prigionier
+prigion
+prigionier
+prigionier
+prim
+prim
+primalun
+primar
+primar
+primar
+primar
+primary
+prim
+primaticc
+primat
+qualor
+qualsias
+qualsis
+qualsiuogl
+qualsivogl
+qualunqu
+qualunqu
+qualunqu
+quand
+quand
+quant
+quant
+quant
+quant
+quantific
+quantit
+quantit
+quantit
+quant
+quantunqu
+quarant
+quarant
+quaranten
+quarantenn
+quarantin
+quaresim
+quaresimal
+quart
+quartett
+quart
+quartier
+quart
+quartier
+quart
+quartucc
+quarum
+quasdr
+quas
+quassù
+quatt
+quatt
+quattordicenn
+quattordicesim
+quattord
+quattordicimil
+quattr
+quattrinell
+quattrin
+quattrin
+quattr
+quattrocent
+quattromil
+quayl
+que
+quegl
+quegl
+que
+que
+quel
+quell
+quell
+quell
+quell
+quell
+quell
+querc
+querc
+querciol
+querel
+querel
+querel
+querell
+ques
+quest
+quest
+quest
+quest
+question
+question
+question
+quest
+questor
+questur
+questur
+qui
+quicktim
+quid
+quidem
+quidquid
+quiet
+quiet
+quietat
+qui
+quiet
+quiet
+quin
+quind
+quindic
+quindicin
+quindicinal
+quint
+quint
+quint
+quintin
+quint
+quiqu
+quirinal
+quis
+quit
+quiv
+quiz
+qundic
+quo
+quod
+quoqu
+ricentralizz
+ricerc
+ricerc
+ricerc
+ricerc
+ricerc
+ricerc
+ricerc
+ricerc
+ricerc
+ricerc
+ricett
+ricett
+ricett
+ricett
+ric
+ricev
+ricev
+ricev
+ricev
+ricev
+ricever
+ricev
+ricev
+ricev
+ricev
+ricev
+ricev
+ricev
+ricevett
+ricevetter
+ricev
+ricev
+ricev
+ricev
+ricev
+ricev
+ricev
+ricev
+ricev
+ricezion
+richard
+rich
+richelieu
+richeter
+richiam
+richiam
+richiam
+richiam
+richiam
+richiam
+richiam
+richiam
+richiam
+richiam
+richiamatol
+richiam
+richiam
+richiam
+richiam
+richiam
+rich
+richiam
+richied
+richied
+richieder
+richied
+richied
+richied
+richiedess
+richied
+richied
+richied
+richiedon
+richied
+richies
+richiest
+richiest
+richiest
+richiest
+richiud
+richiud
+richius
+richius
+richter
+riciclagg
+ricilagg
+riciliù
+rick
+ricognitr
+ricognizion
+ricognizion
+ricognizon
+ricolleg
+ricolm
+ricominc
+ricominc
+ricominc
+ricominc
+ricominc
+ricominc
+ricominc
+ricominc
+ricominc
+ricompar
+ricompar
+ricompar
+ricompar
+ricomparv
+ricomparver
+ricompens
+ricompens
+ricompens
+ricompens
+ricompon
+ryryryryryryryryryryryryryryryryryryryryr
+ryryryryryryryryryryryryryryryryryryryryryry
+s
+sa
+saab
+saad
+saad
+sabatin
+sab
+sabau
+sabb
+sab
+sabot
+sabrin
+sacc
+saccenter
+sacchegg
+sacchegg
+sacchegg
+sacchegg
+sacchett
+sacc
+sacc
+saccon
+saccon
+sac
+sacerdot
+sacerdot
+sacerdoz
+sack
+sacr
+sacrific
+sacrific
+sacrific
+sacrific
+sacrific
+sacrif
+sacrific
+sacrifiz
+sacrileg
+sacrileg
+sacr
+sacros
+sacrosant
+sacully
+saddam
+saes
+saf
+saff
+safil
+safr
+sag
+sagac
+saggezz
+sagg
+saggin
+sagg
+sagr
+sagr
+sagr
+sagrest
+sagrest
+sagrifiz
+sagrifiz
+sai
+saiag
+said
+sailor
+saim
+saint
+sainz
+sai
+saipem
+sal
+sal
+salam
+salamandr
+salamon
+salamon
+salar
+salarial
+salarial
+salar
+sald
+saldan
+sald
+sald
+sald
+sald
+sald
+sald
+sald
+sald
+sal
+salem
+sal
+salernitan
+salernitan
+salernit
+salern
+salesian
+salezzar
+salgon
+salg
+sal
+sal
+salinas
+salingen
+sal
+sal
+sal
+sal
+sal
+sal
+salisc
+scus
+scus
+scus
+scus
+scus
+scus
+scus
+sdegn
+sdegn
+sdegn
+sdegn
+sdegn
+sdegn
+sdegnos
+sdegnos
+sdrai
+sdrai
+sdrai
+sdrai
+sdrai
+sdrucciol
+sdrucciol
+sdrucciol
+sdrucciol
+se
+sè
+sè
+seagull
+sean
+seattl
+sebastian
+sebastian
+sebast
+sebben
+sebben
+secc
+secc
+secc
+secc
+secc
+seccator
+seccator
+seccatur
+secc
+secc
+secc
+secc
+secc
+secc
+secent
+secession
+secession
+secession
+secession
+secit
+sec
+secol
+secolaresc
+secolar
+secol
+secol
+second
+second
+second
+second
+second
+secondar
+secondar
+secondar
+second
+second
+second
+second
+second
+second
+secret
+security
+sed
+sed
+sed
+sed
+sedat
+sed
+sed
+sed
+sedent
+seder
+sed
+seder
+sed
+sedett
+sed
+sed
+sed
+sed
+sedicent
+sedicent
+sedicesim
+sedic
+sed
+sedil
+sedil
+sedizion
+sediz
+sediz
+seducent
+sedurr
+sed
+sed
+sed
+sed
+seduttor
+seduttr
+sefinal
+seg
+sgarbat
+sgarbatezz
+sgarb
+sgarb
+sgarboss
+sgherr
+sgherr
+sghignazz
+sghignazz
+sgomber
+sgomber
+sgombr
+sgombr
+sgombr
+sgombr
+sgoment
+sgoment
+sgoment
+sgoment
+sgoment
+sgomitol
+sgozz
+sgradevol
+sgraffiatur
+sgraffign
+sgranc
+sgranc
+sgranocc
+sgretol
+sgrid
+sgrò
+sgrupp
+sguai
+sguai
+sgualc
+sguard
+sguard
+sguatter
+sguazz
+sguazz
+sguazz
+sguizz
+sgusc
+sh
+shaath
+shadchin
+shafranik
+shah
+shahak
+shal
+shalim
+shank
+shar
+sharm
+shatoievsk
+sheen
+sheffield
+sheil
+shelley
+sheridan
+sherman
+shield
+shiff
+shimer
+shimon
+shinj
+ship
+shipping
+shirley
+shir
+shiskin
+shor
+shos
+show
+shqipetar
+shropsh
+shu
+shur
+shuster
+shygull
+si
+sì
+sia
+siac
+siam
+siam
+sian
+sian
+siat
+siatel
+siber
+sic
+sicar
+sicc
+sicc
+siccit
+siccom
+sichuan
+sicign
+sicilcass
+sicil
+sicilian
+sicilian
+sicilian
+sicil
+sicil
+sicu
+sicuerezz
+sicur
+sicur
+sicur
+sicurezz
+sicur
+sicur
+sicurt
+sprec
+sprec
+sprec
+sprec
+sprec
+sprec
+sprecon
+spred
+spregevol
+sprem
+sprem
+spremitur
+sprezzant
+sprezzatur
+sprezz
+sprigion
+sprigion
+sprigion
+sprint
+sprofond
+spron
+spron
+sproporzion
+sproporzion
+sproposit
+sproposit
+spropos
+spropos
+spropr
+spropr
+sprovved
+sprovvist
+spugn
+spugn
+spumant
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spunt
+spurs
+squadr
+squadr
+squadr
+squadr
+squadr
+squadr
+squadr
+squadr
+squadron
+squadron
+squalific
+squalific
+squallid
+squallid
+squallid
+squallid
+squarc
+squarc
+squart
+squart
+squilibr
+squilibr
+squill
+squinternott
+squis
+squisit
+squisitezz
+squis
+sradic
+sregol
+srna
+ss
+st
+sta
+stà
+stab
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabil
+stabilizz
+stabilizz
+stabilizz
+stabilizz
+stabilizz
+stabil
+stacc
+staccan
+stacc
+stacc
+stacc
+tocc
+tocc
+tocc
+tocc
+todar
+todd
+tofol
+tog
+toga
+tog
+togliatt
+togl
+togl
+togl
+togl
+togl
+togl
+togl
+togl
+togl
+togliess
+togl
+tog
+tok
+tokunag
+toky
+told
+toled
+toller
+toller
+toller
+toller
+toller
+toller
+tolon
+tolstikov
+tolt
+tolt
+tolt
+tom
+tomas
+tomb
+tombal
+tommas
+tomm
+tommyknockers
+tommyknokers
+ton
+tonac
+tonac
+tonant
+tond
+ton
+tonf
+ton
+tonin
+ton
+tonnell
+tonn
+ton
+ton
+tontin
+tony
+tonynton
+top
+topacc
+topai
+top
+top
+topp
+toppon
+torbid
+torbid
+torbid
+torc
+torc
+torc
+torc
+torcett
+torcett
+torc
+torchiatur
+torc
+tord
+torell
+torg
+torines
+torin
+torm
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torment
+torn
+torn
+torn
+torn
+torn
+torn
+torn
+torn
+torn
+torn
+torn
+urlò
+urlon
+urna
+urne
+urre
+urso
+urss
+urtacc
+urtand
+urtan
+urtar
+urtat
+urtat
+urti
+urton
+urton
+uruguai
+usa
+usan
+usan
+usanz
+usanz
+usar
+usar
+usarl
+usar
+usars
+usass
+usat
+usat
+usat
+usat
+usav
+usavan
+usav
+uscend
+uscent
+uscent
+usci
+uscì
+usciacc
+usciam
+usci
+usciolin
+uscir
+uscir
+uscirebb
+uscirem
+uscirn
+usciron
+uscir
+usciss
+uscisser
+uscit
+uscit
+uscit
+uscit
+usciv
+uscivan
+usciv
+usciv
+usd
+usi
+usit
+usl
+uso
+usò
+usppi
+usted
+ustion
+usual
+usufru
+usur
+usurp
+utensil
+utent
+utent
+utenz
+utenz
+util
+util
+util
+util
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utilizz
+utri
+uva
+uve
+uxoricid
+v
+va
+vacanz
+vacanz
+vac
+vaccar
+vaccherell
+vaccherell
+vacchett
+vaccin
+vacek
+vad
+vad
+vad
+vag
+vostr
+vostr
+vot
+vot
+vot
+votant
+vot
+vot
+vot
+vot
+vot
+votatol
+vot
+votazion
+votazion
+vot
+vot
+vot
+vot
+vòt
+vot
+vot
+vòt
+vot
+votum
+vox
+vpic
+vqz
+vte
+vu
+vukos
+vulcanolog
+vulnerar
+vuo
+vuol
+vuol
+vuot
+vuot
+vuot
+waigel
+wainain
+wall
+wallenius
+wallenstein
+walter
+war
+ward
+wardak
+wardl
+warr
+warrant
+warren
+warriors
+washington
+watan
+watc
+water
+wayn
+wbo
+webb
+weekend
+wehrmacht
+welt
+wenders
+werner
+wertmuller
+wes
+west
+westafalisches
+western
+westinghous
+whistler
+whitley
+wich
+wilczek
+wilfried
+willer
+william
+william
+willis
+willy
+wilm
+wilson
+wim
+windows
+wings
+winter
+winterberg
+winters
+wojtyl
+wolf
+wolfgang
+woods
+wordsworth
+workers
+world
+wspr
+wuber
+wuxian
+x
+xai
+xbe
+xbu
+xca
+xcf
+xct
+xdp
+xenofob
+xi
+xii
+xii
+xmi
+xmm
+xpc
+xpi
+yasser
+yediot
+yen
+yirmaguas
+yitzhak
+yoint
+york
+yoss
+yousef
+ypf
+yugoslav
+yusen
+yvett
+z
+za
+zaccar
+zaccher
+zacc
+zach
+zaff
+zag
+zagabr
+zagar
+zain
+zamb
+zamor
+zamp
+zamp
+zampin
+zanacc
+zand
+zanicc
+zanin
+zann
+zanoncell
+zanuss
+zanutt
+zanz
+zapat
+zapat
+zapat
+zapp
+zapp
+zaptist
+zar
+zattarin
+zc
+zdf
+zecc
+zecchin
+zedill
+zeev
+zeffir
+zeitung
+zelant
+zelator
+zel
+zeman
+zendal
+zeng
+zepp
+zer
+zerowatt
+zet
+zetabond
+zetastock
+zetaswiss
+zhirinovsk
+zia
+zibellin
+zie
+zig
+zignag
+zii
+ziin
+zimarr
+zimarr
+zimbell
+zimmermann
+zin
+zincon
+zinell
+zingar
+zing
+zio
+zippor
+zironell
+zitt
+zitt
+zitt
+zitt
+ziuganov
+zo
+zobr
+zocal
+zocc
+zoccol
+zohr
+zol
+zolfanell
+zoll
+zomb
+zon
+zon
+zonz
+zoppas
+zopp
+zoran
+zoratt
+zorr
+zorz
+zotic
+zou
+zucc
+zucc
diff --git a/tests/test_files/italian_stemmer/voc2.txt b/tests/test_files/italian_stemmer/voc2.txt
new file mode 100644
index 000000000..b47109973
--- /dev/null
+++ b/tests/test_files/italian_stemmer/voc2.txt
@@ -0,0 +1,3220 @@
+antonomasia
+antonov
+antonucci
+antraci
+antti
+anulare
+anversa
+anya
+anzi
+anziana
+anziane
+anziani
+anzianità
+anziano
+anzichè
+anzio
+anzitutto
+aosta
+aouita
+ap
+aparecido
+apartheid
+aperta
+apertamente
+aperte
+apertè
+aperti
+aperto
+apertura
+aperture
+apolloni
+apologeta
+apologia
+apologie
+apostrofe
+appagarlo
+appagato
+appagava
+appagherò
+appaiono
+appaltato
+appaltatore
+appaltatrici
+appalto
+appaluditissimi
+appannamento
+appannarsi
+appannò
+apparato
+appare
+apparecchi
+apparecchiar
+apparecchiare
+apparecchiata
+apparecchiate
+apparecchiati
+apparecchiato
+apparecchio
+apparecchiò
+apparendogli
+apparente
+apparentemente
+apparenti
+apparenza
+apparenze
+apparir
+apparire
+apparisca
+apparisse
+apparitore
+apparitori
+appariva
+apparivano
+apparizione
+apparizioni
+apparsa
+apparse
+apparsi
+apparso
+appartamenti
+appartamento
+appartato
+appartenente
+appartenenti
+appartenenza
+appartenenze
+appartenere
+apparteneva
+appartenevano
+appartengano
+appartengono
+appartiene
+apparve
+apparvero
+appassionante
+appassionata
+appassionate
+appassionati
+appassionato
+appassite
+appedonatò
+appellativi
+appellativo
+appelli
+appello
+appena
+appenderlo
+appesantita
+appesi
+appeso
+appestati
+appetito
+appezzamenti
+appiattarsi
+appiattirsi
+battezzata
+battezzato
+battiamo
+battiato
+batticuore
+battigia
+battimani
+battipagliese
+battista
+battistini
+battistrada
+batto
+battuta
+battute
+battuto
+battutta
+batuffoletto
+baudo
+baumann
+bava
+bavarese
+bavero
+baviera
+bay
+bayer
+bayerwerk
+bazza
+bazzecole
+bazzicate
+bazzicava
+bazzicherebbero
+bb
+bbc
+bc
+bca
+bco
+bd
+beach
+beata
+beatificazione
+beatle
+beato
+beatrice
+beautiful
+bebè
+bec
+beccare
+beccarsi
+beccatò
+becchini
+becchino
+becchio
+becco
+becker
+beffa
+beffardi
+beffe
+beghetto
+beghin
+begli
+beha
+bei
+beirut
+beit
+bel
+belar
+belare
+belati
+belfiori
+belga
+belgio
+belgrado
+beliaiev
+bell
+bella
+bellano
+bellarditta
+belle
+bellerio
+bellezza
+bellezze
+belli
+bellici
+belligerante
+belligeranza
+bellissima
+bellissime
+bellissimo
+bello
+bellucci
+bellunese
+belluno
+belmondo
+belson
+beltrami
+belzebù
+bempensante
+ben
+benaivedes
+benarrivo
+benaugurante
+benavides
+benché
+benchè
+benda
+bene
+benedett
+benedetta
+benedette
+benedetti
+benedetto
+benedica
+benedice
+benedicilo
+benedico
+cercarmi
+cercarne
+cercartela
+cercarvi
+cercasse
+cercassi
+cercata
+cercate
+cercatele
+cercato
+cercatore
+cercava
+cercavan
+cercavano
+cercavi
+cercavo
+cercherà
+cercheranno
+cercherebbe
+cercherò
+cerchi
+cerchiamo
+cerchiata
+cerchio
+cerciello
+cercielo
+cercle
+cerco
+cercò
+cercolavoro
+cereali
+cerealicoli
+ceredi
+ceri
+cerimonia
+cerimoniale
+cerimonie
+cerimoniosa
+cerimonioso
+cerioli
+cernebantur
+cerniere
+cernobbio
+cernomyrdin
+cernoriecie
+cernusco
+ceronè
+ceroni
+cerri
+cert
+certa
+certà
+certamente
+certe
+certezza
+certezze
+certi
+certificato
+certificazione
+certissimamente
+certiusque
+certo
+certuni
+ceruleo
+ceruzzi
+cervellacci
+cervelli
+cervellino
+cervello
+cervellò
+cervone
+cerziorato
+cesalpino
+cesar
+cesare
+cesari
+cesen
+cesena
+cespugli
+cespuglio
+cessa
+cessan
+cessar
+cessare
+cessaron
+cessarono
+cessasse
+cessata
+cessate
+cessati
+cessato
+cessava
+cessavano
+cessazione
+cesserebbe
+cessione
+cessò
+cetacei
+ceteris
+ceti
+ceto
+cfi
+cgia
+cgie
+cgil
+ch
+cha
+challenge
+chamot
+champagne
+chang
+chanony
+chantal
+charasiab
+chariello
+dges
+dgl
+dhahran
+dhaka
+dhzuna
+di
+dì
+dia
+diabetici
+diabolica
+diaboliche
+diabolici
+diafano
+diagnosticata
+diagonale
+diahann
+dialetto
+dializzati
+dialogare
+dialogo
+diametro
+diamine
+diamo
+diamogli
+diana
+diane
+diano
+diari
+diatribe
+diavoleria
+diavolerie
+diavoletto
+diavoli
+diavolo
+dibattano
+dibatte
+dibattendo
+dibattendosi
+dibatterà
+dibattere
+dibattersi
+dibatteva
+dibattimentale
+dibattimento
+dibattito
+dibattuta
+dic
+dica
+dican
+dicano
+dicara
+dicastero
+dice
+dicembre
+dicendo
+dicendogli
+dicendole
+dicendolo
+dicesse
+dicessero
+dicessi
+diceste
+diceua
+diceva
+dicevan
+dicevano
+dicevate
+dicevo
+dichairata
+dichiara
+dichiarando
+dichiarare
+dichiararsi
+dichiarasse
+dichiarata
+dichiarate
+dichiarati
+dichiarato
+dichiarava
+dichiarazione
+dichiarazioni
+dichiari
+dichiaro
+dichiarò
+dichiazioni
+dici
+diciam
+diciamo
+diciamolo
+diciannovenne
+diciassettenne
+diciottenne
+diciotto
+dicitore
+dicitura
+dico
+dicon
+dicono
+dicotomia
+didier
+die
+dié
+dieci
+diecimila
+diede
+diedero
+diego
+dieta
+dieter
+dietologi
+dietologo
+dietro
+dietrologie
+difatti
+difendano
+enunciati
+enunciato
+enunciazione
+envireg
+enzo
+eologiato
+ep
+epatite
+ephraim
+epicentro
+epidemica
+episcopale
+episcopali
+episodi
+episodio
+epiteti
+epiteto
+epoca
+epoche
+eppure
+epreoccupano
+epresto
+epta
+eptabond
+eptacapital
+eptainternational
+eptamoney
+epulone
+eq
+equilibrarsi
+equilibrato
+equilibrio
+equipaggi
+equipaggio
+equiparare
+equiparazione
+equità
+equitazione
+equity
+equivale
+equivalente
+equivalentè
+equivaleva
+equivoci
+equivoco
+equo
+er
+era
+eran
+eranio
+erano
+erant
+erario
+eravamo
+eravate
+erba
+erbacce
+erbaccia
+erbe
+erboso
+ercole
+ercoli
+erede
+eredità
+ereditare
+ereditaria
+ereditato
+eremita
+eresse
+eretico
+eretta
+eretto
+ergastolo
+erge
+ergife
+ergo
+eric
+ericsson
+eridania
+erigere
+erik
+erikkson
+eriksson
+erlanger
+ermellini
+ermetismo
+erminio
+ernesto
+ero
+eroe
+erogabile
+erogati
+erogato
+erogatrice
+erogazione
+eroi
+eroica
+eroico
+eroina
+eroismo
+erotici
+err
+erranti
+errato
+erravano
+errol
+error
+errore
+errori
+erta
+erte
+erto
+eruditamente
+erudite
+erudito
+fiata
+fiatar
+fiatare
+fiatava
+fiaterebbe
+fiato
+fiatò
+fibra
+fibre
+ficca
+ficcadenti
+ficcan
+ficcandogli
+ficcandosi
+ficcare
+ficcata
+ficcati
+ficcò
+fiches
+fichi
+fico
+fictas
+fida
+fidando
+fidanzata
+fidanzato
+fidare
+fidarmi
+fidarsi
+fidarvi
+fidata
+fidate
+fidatevi
+fidati
+fidatissimo
+fidato
+fidecommisso
+fidei
+fideuram
+fidi
+fidiamo
+fidis
+fido
+fidone
+fiducia
+fiducià
+fiduciario
+fiele
+fieno
+fiera
+fieramente
+fiere
+fierezza
+fieri
+fieristica
+fieristiche
+fieristico
+fiesole
+figli
+figlia
+figlie
+figlio
+figliolanza
+figlioletta
+figlioletto
+figliuol
+figliuola
+figliuoli
+figliuolo
+fignolo
+figueroa
+figura
+figuracce
+figurando
+figurano
+figurare
+figurarsi
+figuratevi
+figurati
+figurato
+figurava
+figuravano
+figure
+figureranno
+figuri
+figuriamoci
+figurine
+figuro
+figurò
+fikret
+fil
+fila
+filadelfia
+filanda
+filari
+filarmonica
+filastrocca
+filaticcio
+filato
+filatoio
+filatore
+filatura
+file
+files
+fili
+filiali
+filicano
+filigrana
+filipovic
+filippi
+filippine
+filippini
+filippo
+film
+filmato
+gh
+ghafoor
+ghali
+ghennadi
+ghermito
+gheroni
+ghetto
+ghezzi
+ghiacci
+ghiaccio
+ghiaia
+ghiaie
+ghigno
+ghirardelli
+ghoober
+gi
+già
+giacarta
+giacché
+giacciono
+giace
+giacere
+giaceva
+giacevano
+giacimenti
+giacimento
+giacobbo
+giacomel
+giacomelli
+giacomin
+giacomo
+gialappàs
+gialla
+gialle
+gialli
+giallo
+gialloblù
+giallognola
+giallorossa
+giallorosso
+giamai
+giamaica
+giambra
+giammai
+giampaolo
+giampiero
+gian
+giancarlo
+gianfranco
+giangiacomo
+gianluca
+gianluigi
+giannantonio
+giannatale
+giannetti
+gianni
+giannini
+giannino
+giannuzzi
+gianpaolo
+giappone
+giapponese
+giapponesi
+giapppone
+giarda
+giardin
+giardinetto
+giardini
+giardiniere
+giardino
+gifim
+gigante
+gigantesca
+gigantesco
+giganti
+gigi
+gigli
+giglio
+gil
+gilardini
+gillian
+gilly
+gim
+gin
+gina
+ginevra
+ginn
+ginnastica
+gino
+ginocchia
+ginocchio
+ginocchioni
+gioca
+giocando
+giocano
+giocare
+giocata
+giocate
+giocato
+giocator
+giocatore
+giocatori
+giocatrici
+giocava
+giocavan
+giocavano
+giocherà
+giocheresti
+giochetto
+giochi
+gioco
+giocolieri
+giocondi
+giocondità
+giocondo
+ha
+haapakosti
+haaretz
+habbiamo
+hackett
+haddad
+hadi
+haec
+hai
+haifa
+haiti
+haley
+halifax
+hallara
+halloween
+hamac
+hamas
+hamburgher
+hammallà
+hammamet
+hammaquà
+hammed
+hampel
+han
+hanak
+handicap
+handicappati
+handicappato
+hann
+hanna
+hannah
+hanno
+hanoi
+hans
+harald
+harare
+harbour
+harigà
+haris
+harjanne
+haro
+harrison
+hashemi
+hauendo
+hauer
+hauere
+hauesse
+hauessimo
+haueuano
+haustam
+hauuto
+havre
+hawaii
+hays
+hazzard
+heads
+hearts
+hebron
+heimat
+hekmatyar
+held
+helen
+helena
+helgenberger
+helmut
+helsinki
+hemmings
+heniz
+henrik
+henry
+hepburn
+herald
+herba
+heroe
+heroi
+herrera
+hervè
+herzog
+hezb
+hibernian
+highlander
+hillman
+hillo
+hills
+hiroyuki
+his
+hispano
+hist
+historia
+historiae
+hitler
+hlena
+ho
+hoc
+hockey
+hoffman
+hold
+holding
+holly
+hollywood
+hollywoodiano
+holm
+homefront
+homer
+honesta
+honestas
+hong
+honolulu
+hood
+hooker
+horrori
+horst
+horthy
+hospital
+hossack
+impegnati
+impegnative
+impegnato
+impegnavano
+impegneranno
+impegni
+impegnino
+impegno
+impegnò
+impenetrabile
+impennarsi
+impennata
+impensabile
+impensata
+impensati
+impensato
+imperativo
+imperator
+imperatore
+impercettibile
+imperciocché
+imperdonabile
+imperfetta
+imperfettione
+imperfetto
+imperfezion
+imperia
+imperiale
+imperiese
+imperiosa
+imperiose
+imperioso
+impero
+imperscrutabile
+imperterrito
+impertinenze
+imperturbabile
+imperturbata
+imperversar
+imperversato
+impeto
+impetrata
+impetuosa
+impetuosamente
+impetuosi
+impetuoso
+imphal
+impianti
+impianto
+impiastramento
+impiastro
+impiccar
+impiccarli
+impiccati
+impiccato
+impiccheranno
+impicci
+impicciano
+impicciare
+impicciarmene
+impicciarsi
+impicciata
+impicciate
+impicciati
+impicciato
+impicciavan
+impiccio
+impiccione
+impiega
+impiegar
+impiegarci
+impiegare
+impiegarle
+impiegarli
+impiegarne
+impiegarono
+impiegarsi
+impiegata
+impiegate
+impiegati
+impiegato
+impiegatovi
+impiegherebbero
+impieghi
+impieghiamo
+impiego
+impigrito
+impiparsi
+impipo
+implacabile
+implica
+implicata
+implicati
+implicato
+implici
+implicitamente
+implorando
+implorar
+implorare
+implorata
+implorato
+implorava
+imploravan
+imploravano
+implori
+imploriate
+impone
+imponendogli
+imponendosi
+imponente
+imponesse
+imponeva
+imponevano
+imponga
+imponibile
+irresponsabilità
+irreversibile
+irreversibilmente
+irrevocabile
+irrevocabilmente
+irriducibili
+irrigate
+irrilevante
+irrisa
+irrisolti
+irritante
+irritarsi
+irritata
+irritati
+irritato
+irrituale
+irritualità
+irrogate
+irruenza
+irruzione
+irsute
+irti
+isabel
+isaia
+isalmici
+isbaglio
+isbieco
+isbrigarsi
+iscacci
+iscacciar
+iscandolo
+iscansar
+iscansare
+iscansarli
+iscapitarci
+iscapolarsene
+iscappasse
+iscapperà
+isceglier
+ischerno
+ischerzo
+ischia
+ischiamazzi
+ischiera
+ischiuma
+isconficcarla
+iscontare
+isconto
+iscoprire
+iscoprite
+iscorgendo
+iscritta
+iscritte
+iscritti
+iscritto
+iscrivendo
+iscriver
+iscriversi
+iscrizioni
+iscusa
+ise
+isefi
+isfogarsi
+isfoggiar
+isgarbatezze
+isgravarsi
+isguardi
+isguardo
+isgusciar
+isla
+islam
+islamabad
+islami
+islamica
+islamicà
+islamici
+islamico
+islamiya
+islanciarsi
+island
+ismanie
+ismarrita
+ismettere
+ismovere
+isola
+isolamento
+isolare
+isolata
+isolato
+isole
+ispalla
+ispaventi
+ispavento
+ispecie
+ispegnerla
+ispenderli
+ispesare
+ispettorato
+ispettore
+ispettori
+ispezionato
+ispianate
+ispiar
+ispidi
+ispiegarlo
+ispinger
+ispingerla
+ispira
+ispirandogli
+ispirandosi
+ispirano
+ispirasse
+ispirata
+ispirato
+ispiratore
+jackson
+jacob
+jacobsen
+jacqueline
+jahan
+jaime
+jamaa
+jamaat
+james
+jammin
+jan
+janata
+janeiro
+janet
+janez
+janni
+janowski
+jansson
+jaqueline
+jarni
+javier
+jean
+jeanne
+jechna
+jeep
+jeff
+jefferson
+jeleesa
+jemis
+jennifer
+jenny
+jens
+jerry
+jervolino
+jessica
+jet
+jfk
+ji
+jiahua
+jibril
+jihad
+jijel
+jill
+jim
+jimenez
+jimmy
+joachim
+joaquin
+jocelyn
+joe
+johan
+johann
+johannesburg
+john
+johnson
+joint
+jolly
+joly
+jon
+jonas
+jonathan
+jones
+jonk
+jorge
+jose
+josè
+josef
+joseph
+josephi
+jospin
+jr
+juan
+jugoslavia
+jugovic
+juha
+juicio
+julia
+julian
+julie
+julieth
+junior
+juniores
+juppè
+jure
+juta
+juve
+juventini
+juventus
+k
+kabariti
+kabul
+kaddoumi
+kaelon
+kakrabar
+kalà
+kalashikov
+kalpakkam
+kambia
+kamikazè
+kanchanaburi
+kankkunen
+kaos
+karachi
+karadzic
+karaoke
+karel
+karim
+karlsruhe
+karlstad
+kashmir
+kashoggi
+kastros
+kawashima
+kazakhstan
+kelly
+kovac
+kowanko
+kozminski
+kraftnat
+krajina
+krajna
+krasnov
+kreek
+kris
+krsko
+kruja
+krupa
+kruz
+krzystof
+kuala
+kulikov
+kung
+kupra
+kurt
+kuwait
+kvashnin
+kw
+kwh
+l
+la
+là
+labbra
+labbro
+laberinto
+labirinti
+laboratorio
+labra
+laburista
+laburisti
+lacandona
+laccio
+lacerati
+lacerazioni
+lacere
+laceri
+laconico
+lacqua
+lacrimando
+lacrime
+lacrimogeni
+lacrimoso
+ladri
+ladro
+ladrona
+ladrone
+ladroni
+laender
+laerzio
+lafert
+lagat
+lagest
+laggiu
+laggiù
+lagnandosi
+lagnarsene
+lagnarsi
+lago
+lagostena
+lagrima
+lagrimoso
+laicale
+laiche
+laici
+laicità
+laico
+laido
+lake
+lalas
+lama
+lamacchi
+lamana
+lamanda
+lambert
+lamberto
+lambiccarsi
+lambro
+lame
+lamentandosi
+lamentarci
+lamentarsi
+lamentassero
+lamentato
+lamentava
+lamentazioni
+lamentevole
+lamenti
+lamento
+lamet
+lamezia
+lamia
+lamine
+lamorte
+lampada
+lampade
+lampante
+lampanti
+lampeggiar
+lampeggiare
+lampi
+lampo
+lampone
+lampugnano
+lana
+lancaster
+lance
+lancer
+lanci
+lancia
+lanciai
+lanciamo
+lords
+loredana
+lorena
+lorenzini
+lorenzo
+loreto
+lori
+lorieri
+loro
+los
+losa
+losanna
+losche
+loseto
+lotta
+lottà
+lottare
+lotte
+lotteria
+lotti
+lottizzazione
+lotto
+louis
+lourdes
+lovato
+lovely
+lp
+lq
+lr
+lt
+lu
+luanda
+luc
+luca
+lucar
+lucarelli
+lucca
+lucchese
+lucchetta
+lucchetti
+lucchi
+lucchini
+lucci
+luccicante
+luccicanti
+luccicare
+lucciole
+luce
+lucente
+lucenti
+lucerna
+lucerne
+luchetti
+luchino
+luci
+lucia
+luciana
+luciano
+lucida
+lucidi
+lucido
+lucignolo
+lucilla
+lucio
+lucrezia
+lucrosa
+lueders
+lufthansa
+luglio
+lugo
+lugubre
+lui
+luigi
+luigiterzo
+luino
+luisa
+luisito
+luiso
+lumbard
+lume
+lumeggiando
+lumeggiavano
+lumezzane
+lumi
+lumicino
+lumiere
+lumpur
+luna
+lunà
+lunarè
+lunario
+lunedì
+lunedìa
+lunedìper
+lunette
+lunga
+lungagnata
+lungamente
+lunghe
+lunghettamente
+lunghezza
+lunghi
+lunghigna
+lunghissimi
+lunghissimo
+lungi
+lungimirante
+lungimiranza
+lungo
+lunini
+luochi
+luoghi
+luogo
+luogotenente
+luogotenenti
+matteo
+matteoli
+matteotti
+matterello
+matteucci
+matti
+mattina
+mattinata
+mattino
+mattioli
+matto
+mattone
+mattoni
+mattutine
+matun
+matura
+maturando
+maturare
+maturato
+maturazione
+mature
+maturerà
+maturi
+maturo
+mauritania
+maurizio
+mauro
+mausoleo
+max
+maxialleanza
+maxima
+maximum
+maxiordine
+maxischermo
+maya
+mayer
+mayock
+mays
+mazenta
+mazzanti
+mazzantini
+mazzeo
+mazzetti
+mazzetto
+mazzo
+mazzola
+mazzone
+mb
+mc
+mccartney
+mcquinn
+mdp
+me
+mea
+meana
+meazza
+mecca
+meccaniche
+meccanici
+meccanico
+meccanismi
+meccanismo
+meccanizzate
+meco
+med
+meda
+medaglia
+medaglie
+medail
+medesim
+medesima
+medesime
+medesimi
+medesimo
+medesmo
+medi
+media
+mediante
+mediare
+mediatori
+mediatrice
+mediazione
+medica
+medicare
+medicati
+mediceo
+medici
+medicina
+medicinale
+medicinali
+medicine
+medico
+medie
+medio
+mediob
+mediobanca
+mediocre
+mediocredito
+mediocremente
+mediocri
+mediocrità
+mediolani
+mediologica
+mediomassimi
+mediorientali
+medita
+meditando
+meditano
+meditare
+meditata
+meditava
+meditazione
+mediteraneo
+mediterranea
+mediterranee
+nomi
+nomina
+nominale
+nominar
+nominare
+nominarla
+nominarlo
+nominarmi
+nominata
+nominate
+nominati
+nominato
+nominava
+nomine
+nomini
+nominiamo
+nominitive
+nomino
+nominò
+nomisma
+non
+nonchè
+noncurante
+noncuranza
+nondimeno
+nones
+nonfa
+noni
+nonna
+nonni
+nonno
+nonosolomoda
+nonostante
+nonsolomoda
+norberto
+nord
+nordafricanò
+nordamerica
+nordcapital
+nordfondo
+nordica
+nordio
+nordiste
+norditalia
+nordmix
+norge
+norma
+normale
+normali
+normalità
+normalizzazione
+normalmente
+normativa
+normative
+norme
+norsk
+north
+norvegese
+norvegesi
+norvegia
+nos
+noseda
+nostir
+nostra
+nostre
+nostri
+nostro
+nota
+notabile
+notabili
+notabilmente
+notaio
+notando
+notano
+notar
+notare
+notari
+notarile
+notaristefano
+notarne
+notaro
+notate
+notati
+notato
+notava
+notavan
+notazioni
+note
+notevole
+notevoli
+notevolmente
+noti
+noticina
+notificato
+notissimo
+notitia
+notize
+notizia
+notizià
+notiziari
+notiziario
+notizie
+noto
+notorietà
+notre
+notta
+nottata
+notte
+notti
+nottingham
+notturna
+notturno
+nov
+novamente
+novanta
+oggi
+oggigiorno
+ogn
+ogni
+ogniuno
+ognun
+ognuna
+ognuno
+oh
+ohe
+ohi
+ohimè
+oibò
+oil
+ok
+olà
+olaf
+olanda
+olandese
+olandesi
+olbia
+olcese
+ole
+oleg
+oleodotto
+olevano
+olidata
+oligarchia
+oligarchie
+oligopolio
+olimpiadi
+olimpica
+olimpici
+olimpico
+olio
+oliseh
+oliva
+olivares
+olive
+oliveira
+olivelli
+olivetti
+oliviero
+olmi
+olocausto
+oloferne
+olona
+olp
+oltraggio
+oltre
+oltrechè
+oltremodo
+oltreoceano
+oltrepassare
+oltrepassava
+oltrepassò
+oltretutto
+oltreutto
+om
+omacci
+omaggi
+omaggio
+omar
+ombra
+ombre
+ombrelli
+ombrello
+ombretta
+ombrosa
+ombroso
+omelia
+omero
+omessi
+omesso
+ometteremo
+omiciattolo
+omicida
+omicide
+omicidi
+omicidii
+omicidio
+omino
+omnia
+omnitel
+omogenee
+omogenei
+omologato
+omologazione
+omologo
+omonime
+omonimo
+omosessuali
+omosessualità
+on
+once
+oncia
+ond
+onda
+ondata
+ondate
+onde
+ondeggiamento
+ondeggiar
+ondeggiare
+ondoso
+onerose
+onesta
+onestamente
+oneste
+onesti
+onesto
+ong
+onninamente
+onnipresente
+onofrio
+passeggiate
+passeggiato
+passeggiera
+passeggiere
+passeggieri
+passeggiero
+passerà
+passeranno
+passere
+passerebbe
+passerella
+passeremo
+passi
+passiamo
+passibili
+passim
+passini
+passion
+passione
+passioni
+passiva
+passivi
+passivo
+passler
+passo
+passò
+pasta
+pastari
+pastaria
+paste
+pasticche
+pasticci
+pasticcio
+pastiglia
+pastiglie
+pastine
+pasto
+pastocchia
+pastorale
+pastorali
+pastore
+pastori
+pastorizia
+pasturo
+pat
+patatà
+patate
+patavina
+patente
+patenti
+paterna
+paterni
+paternita
+paternità
+paterniti
+paternostri
+paterson
+patetica
+patimenti
+patimento
+patina
+patinate
+patir
+patire
+patirebbero
+patiscan
+patisce
+patisco
+patiscono
+patiti
+patito
+pativa
+patologia
+patologie
+patria
+patriae
+patriarchi
+patrick
+patrimoni
+patrimonio
+patrizia
+patrocinio
+patrona
+patteggiamento
+patti
+pattinaggio
+pattino
+patto
+pattuglia
+pattugliamento
+pattuita
+paul
+paula
+paulo
+paura
+pauraccia
+paure
+paurosa
+pauroso
+pausa
+pav
+pavan
+pavel
+pavia
+paviato
+pavimento
+pavone
+paxton
+paziente
+pazienti
+pazienza
+pazzaglia
+pazzamente
+pazzia
+pazzie
+prestiti
+prestito
+presto
+preston
+presumere
+presumibilmente
+presumono
+presunta
+presunte
+presunti
+presunto
+presunzione
+presupposti
+presupposto
+presutti
+prete
+pretende
+pretender
+pretendere
+pretendesse
+pretendete
+pretendeva
+pretendevano
+pretendi
+pretendiam
+pretendiamo
+pretendo
+pretendono
+pretensione
+pretensioni
+pretesa
+preteso
+pretesti
+pretesto
+preti
+pretore
+pretoria
+pretoriana
+pretta
+pretto
+preussenelektra
+prevalente
+prevalentemente
+prevalenti
+prevalenza
+prevalere
+prevaleva
+prevalga
+prevalgono
+prevalsa
+prevalse
+prevalso
+prevaricante
+prevaricazione
+preveda
+prevede
+preveder
+prevederà
+prevedere
+prevederebbe
+prevedeva
+prevedevano
+prevediamo
+prevedibile
+prevedibili
+prevedo
+prevedono
+prevenir
+prevenire
+prevenirle
+prevenne
+preventiva
+preventivo
+prevenuto
+prevenzione
+previdente
+previdenza
+previdenzà
+previdenze
+previdenziale
+previdenziali
+previsione
+previsioni
+prevista
+previste
+previsti
+previsto
+previti
+prevot
+preziosa
+preziose
+preziosi
+preziosissimi
+prezioso
+prezzi
+prezzo
+pri
+prigione
+prigioni
+prigionia
+prigioniera
+prigioniere
+prigionieri
+prigioniero
+prim
+prima
+primaluna
+primari
+primaria
+primarie
+primario
+primary
+primati
+primaticce
+primatista
+qualora
+qualsiasi
+qualsisia
+qualsiuoglia
+qualsivoglia
+qualunque
+qualunquismo
+qualunquista
+quand
+quando
+quant
+quanta
+quante
+quanti
+quantificavano
+quantità
+quantitativi
+quantitativo
+quanto
+quantunque
+quarant
+quaranta
+quarantene
+quarantenni
+quarantina
+quaresima
+quaresimale
+quarta
+quartetto
+quarti
+quartier
+quartiere
+quartieri
+quarto
+quartuccio
+quarum
+quasdro
+quasi
+quassù
+quatti
+quatto
+quattordicenne
+quattordicesima
+quattordici
+quattordicimila
+quattr
+quattrinelli
+quattrini
+quattrino
+quattro
+quattrocento
+quattromila
+quayle
+que
+quegl
+quegli
+quei
+queire
+quel
+quell
+quella
+quelle
+quelli
+quello
+quellò
+querce
+quercia
+quercioli
+querela
+querelarsi
+querele
+querelle
+quesiti
+quest
+questa
+queste
+questi
+questionare
+questione
+questioni
+questo
+questore
+questura
+questure
+qui
+quicktime
+quid
+quidem
+quidquid
+quieta
+quietamente
+quietatevi
+quiete
+quieti
+quieto
+quin
+quindi
+quindici
+quindicina
+quindicinale
+quinta
+quinte
+quinti
+quintin
+quinto
+quique
+quirinale
+quis
+quito
+quivi
+quiz
+qundici
+quo
+quod
+quoque
+ricentralizzazione
+ricerca
+ricercando
+ricercare
+ricercata
+ricercate
+ricercati
+ricercato
+ricercatori
+ricerche
+ricercò
+ricettato
+ricettatore
+ricettazione
+ricette
+ricevano
+riceve
+ricevé
+ricevemmo
+ricevendo
+ricevendone
+ricever
+riceverà
+riceveranno
+ricevere
+riceverla
+riceverle
+riceverli
+riceverlo
+ricevette
+ricevettero
+riceveva
+ricevevano
+ricevimenti
+ricevimento
+ricevono
+ricevuta
+ricevute
+ricevuti
+ricevuto
+ricezione
+richard
+riche
+richelieu
+richeter
+richiama
+richiamando
+richiamandosi
+richiamano
+richiamare
+richiamarmi
+richiamarsi
+richiamata
+richiamati
+richiamato
+richiamatolo
+richiamava
+richiamavano
+richiamerebbe
+richiami
+richiamiamo
+richiamo
+richiamò
+richiede
+richiedendo
+richieder
+richiedere
+richiedergli
+richiederlo
+richiedesse
+richiedessero
+richiedeva
+richiedevano
+richiedon
+richiedono
+richiese
+richiesta
+richieste
+richiesti
+richiesto
+richiudere
+richiudeva
+richiusa
+richiuse
+richter
+riciclaggio
+ricilaggio
+riciliù
+rick
+ricognitrice
+ricognizione
+ricognizioni
+ricognizone
+ricollegare
+ricolmò
+ricomincerà
+ricomincerebbe
+ricomincia
+ricominciando
+ricominciar
+ricominciarono
+ricominciato
+ricominciava
+ricominciò
+ricomparendo
+ricomparire
+ricomparirvi
+ricompariva
+ricomparve
+ricomparvero
+ricompensa
+ricompensare
+ricompenserà
+ricompensi
+ricompone
+ryryryryryryryryryryryryryryryryryryryryr
+ryryryryryryryryryryryryryryryryryryryryryry
+s
+sa
+saab
+saad
+saada
+sabatini
+sabato
+sabau
+sabbia
+sabe
+sabotare
+sabrina
+sacca
+saccenteria
+saccheggiare
+saccheggiato
+saccheggiatori
+saccheggio
+sacchetti
+sacchi
+sacco
+saccone
+sacconi
+sace
+sacerdote
+sacerdoti
+sacerdozio
+sack
+sacra
+sacrificare
+sacrificarsi
+sacrificata
+sacrificati
+sacrificato
+sacrifici
+sacrificio
+sacrifizio
+sacrilega
+sacrilegio
+sacro
+sacrosante
+sacrosanto
+sacully
+saddam
+saes
+saf
+saffa
+safilo
+safr
+saga
+sagacità
+saggezza
+saggia
+saggina
+saggio
+sagra
+sagrare
+sagrava
+sagrestano
+sagrestia
+sagrifizi
+sagrifizio
+sai
+saiag
+said
+sailor
+saima
+saint
+sainz
+saio
+saipem
+sal
+sala
+salam
+salamandra
+salamon
+salamone
+salari
+salariale
+salariali
+salario
+salda
+saldana
+saldar
+saldare
+saldarle
+saldate
+saldato
+saldi
+saldo
+saldò
+sale
+salemi
+salendo
+salernitana
+salernitani
+salernitano
+salerno
+salesiana
+salezzari
+salgon
+salgono
+sali
+salì
+salinas
+salingen
+salio
+salir
+salire
+salirete
+salirono
+salirvi
+saliscendi
+scusarvi
+scusasse
+scusate
+scusava
+scuse
+scuserà
+scusi
+sdegnarsi
+sdegnata
+sdegnate
+sdegnati
+sdegni
+sdegno
+sdegnosa
+sdegnosi
+sdraiarsi
+sdraiata
+sdraiate
+sdraiati
+sdraiò
+sdrucciolar
+sdrucciolare
+sdrucciolava
+sdrucciolò
+se
+sé
+sè
+seagull
+sean
+seattle
+sebastian
+sebastiani
+sebastiano
+sebben
+sebbene
+secca
+seccano
+seccare
+seccarvi
+seccata
+seccatore
+seccatori
+seccatura
+secche
+seccherebbe
+secchi
+secchie
+secchio
+secco
+secentista
+secessione
+secessionismo
+secessionista
+secessionisti
+secit
+seco
+secolare
+secolaresca
+secolari
+secoli
+secolo
+second
+seconda
+secondando
+secondar
+secondare
+secondaria
+secondariamente
+secondario
+secondarlo
+secondato
+secondava
+secondavano
+secondi
+secondo
+secret
+security
+sed
+sedare
+sedata
+sedate
+sedativi
+sedava
+sede
+sedendo
+sedente
+seder
+sedere
+sederi
+sedersi
+sedette
+sedeva
+sedevano
+sedi
+sedia
+sedicente
+sedicenti
+sedicesimo
+sedici
+sedie
+sedile
+sedili
+sedizione
+sediziose
+sedizioso
+seducenti
+sedurre
+seduta
+sedute
+seduti
+seduto
+seduttore
+seduttrice
+sefinale
+sega
+sgarbatamente
+sgarbatezze
+sgarbato
+sgarbi
+sgarbossa
+sgherri
+sgherro
+sghignazzando
+sghignazzava
+sgomberare
+sgombero
+sgombra
+sgombrare
+sgombrate
+sgombro
+sgomentata
+sgomentate
+sgomentati
+sgomenti
+sgomento
+sgomitolandosi
+sgozzata
+sgradevole
+sgraffiatura
+sgraffignato
+sgranchì
+sgranchirsi
+sgranocchiato
+sgretolavano
+sgridata
+sgrò
+sgruppò
+sguaiata
+sguaiato
+sgualcita
+sguardi
+sguardo
+sguattero
+sguazzar
+sguazzava
+sguazzi
+sguizza
+sgusciavano
+sh
+shaath
+shadchin
+shafranik
+shah
+shahak
+shali
+shalimar
+shankar
+share
+sharma
+shatoievsk
+sheen
+sheffield
+sheila
+shelley
+sheridan
+sherman
+shield
+shiff
+shimer
+shimon
+shinji
+ship
+shipping
+shirley
+shiro
+shiskin
+shore
+shos
+show
+shqipetarè
+shropshire
+shuar
+shurà
+shuster
+shygulla
+si
+sì
+sia
+siaca
+siam
+siamo
+sian
+siano
+siate
+siatelo
+siberiano
+sic
+sicari
+sicché
+sicchè
+siccità
+siccome
+sichuan
+sicignano
+sicilcassa
+sicilia
+siciliana
+siciliane
+siciliani
+siciliano
+sicilie
+sicu
+sicuerezza
+sicura
+sicuramente
+sicure
+sicurezza
+sicuri
+sicuro
+sicurtà
+sprecano
+sprecate
+sprecato
+sprecava
+sprechi
+spreco
+sprecone
+spred
+spregevole
+spremere
+spremerne
+spremitura
+sprezzante
+sprezzatura
+sprezzo
+sprigiona
+sprigionandosi
+sprigionò
+sprint
+sprofondato
+sprona
+sproni
+sproporzionato
+sproporzione
+spropositato
+spropositava
+spropositi
+sproposito
+spropriarsi
+sproprio
+sprovveduta
+sprovvisto
+spugna
+spugne
+spumante
+spunta
+spuntano
+spuntar
+spuntare
+spuntargli
+spuntarla
+spuntarlo
+spuntati
+spuntava
+spunterebbe
+spunti
+spunto
+spuntò
+spurs
+squadra
+squadrando
+squadrandolo
+squadrati
+squadrato
+squadrava
+squadre
+squadrò
+squadron
+squadrone
+squalificati
+squalificato
+squallida
+squallidamente
+squallide
+squallido
+squarci
+squarcio
+squartare
+squartato
+squilibri
+squilibrio
+squillo
+squinternotto
+squisita
+squisitamente
+squisitezza
+squisito
+sradicamento
+sregolati
+srna
+ss
+st
+sta
+stà
+stabia
+stabile
+stabilendo
+stabili
+stabilì
+stabilimenti
+stabilimento
+stabilirà
+stabilire
+stabilirla
+stabilirsi
+stabilirvi
+stabilisce
+stabiliscono
+stabilita
+stabilità
+stabilite
+stabiliti
+stabilito
+stabiliva
+stabilizzare
+stabilizzarsi
+stabilizzata
+stabilizzazione
+stabilizzerà
+stabilmente
+stacca
+staccan
+staccando
+staccarsene
+staccarsi
+tocchi
+tocci
+tocco
+toccò
+todaro
+todd
+tofoli
+toga
+togae
+togato
+togliatti
+toglie
+togliendo
+togliendogli
+togliendoli
+togliere
+togliergli
+togliergliela
+togliersi
+togliervi
+togliesse
+toglieva
+togo
+tokio
+tokunaga
+tokyo
+toldo
+toledo
+tollerabile
+tollerabilità
+tolleranza
+tollerar
+tollerare
+tollerati
+tolone
+tolstikov
+tolta
+tolte
+tolto
+tom
+tomas
+tomba
+tombalè
+tommasi
+tommi
+tommyknockers
+tommyknokers
+ton
+tonaca
+tonache
+tonante
+tondo
+tonè
+tonfo
+toni
+tonini
+tonio
+tonnellate
+tonno
+tono
+tonò
+tontini
+tony
+tonynton
+top
+topacci
+topaie
+topi
+topo
+toppa
+topponi
+torbida
+torbide
+torbido
+torca
+torce
+torcendo
+torcere
+torcetti
+torcetto
+torchia
+torchiatura
+torcia
+tord
+torello
+torgiano
+torinese
+torino
+torme
+tormenta
+tormentar
+tormentare
+tormentarla
+tormentarli
+tormentarlo
+tormentarmi
+tormentarsi
+tormentato
+tormentavano
+tormenti
+tormento
+tormentosa
+tormentose
+tormentoso
+torna
+tornando
+tornandoci
+tornandole
+tornandovi
+tornano
+tornar
+tornarci
+tornare
+tornarono
+tornarsene
+urlò
+urloni
+urna
+urne
+urrea
+urso
+urss
+urtacchiando
+urtando
+urtano
+urtar
+urtati
+urtato
+urti
+urtone
+urtoni
+uruguaiano
+usa
+usan
+usano
+usanza
+usanze
+usar
+usare
+usarlo
+usarono
+usarsi
+usasse
+usata
+usate
+usati
+usato
+usava
+usavan
+usavano
+uscendo
+uscente
+uscenti
+usci
+uscì
+usciaccio
+usciamo
+uscio
+usciolino
+uscir
+uscire
+uscirebbe
+usciremo
+uscirne
+usciron
+uscirono
+uscisse
+uscissero
+uscita
+uscite
+usciti
+uscito
+usciva
+uscivan
+uscivano
+uscivo
+usd
+usi
+usitato
+usl
+uso
+usò
+usppi
+usted
+ustione
+usuale
+usufruito
+usura
+usurpare
+utensili
+utente
+utenti
+utenza
+utenze
+utile
+utili
+utilì
+utilità
+utilizza
+utilizzando
+utilizzandole
+utilizzano
+utilizzare
+utilizzata
+utilizzate
+utilizzati
+utilizzato
+utilizzazione
+utilizzerà
+utilizzi
+utilizzo
+utri
+uva
+uve
+uxoricida
+v
+va
+vacanza
+vacanze
+vacato
+vaccaro
+vaccherella
+vaccherelle
+vacchetta
+vaccino
+vacek
+vada
+vadano
+vado
+vaga
+vostri
+vostro
+vota
+votando
+votandolo
+votanti
+votare
+votargli
+votata
+votate
+votato
+votatolo
+votavano
+votazione
+votazioni
+vote
+voterà
+voteremo
+voti
+vòti
+votiamo
+voto
+vòto
+votò
+votum
+vox
+vpic
+vqz
+vte
+vu
+vukosa
+vulcanologico
+vulneraria
+vuoi
+vuol
+vuole
+vuota
+vuote
+vuoto
+waigel
+wainaina
+wall
+wallenius
+wallenstein
+walter
+war
+ward
+wardak
+wardle
+warr
+warrant
+warren
+warriors
+washington
+watan
+watch
+water
+wayne
+wbo
+webb
+weekend
+wehrmacht
+welt
+wenders
+werner
+wertmuller
+wes
+west
+westafalisches
+western
+westinghouse
+whistler
+whitley
+wicha
+wilczek
+wilfried
+willer
+william
+williame
+willis
+willy
+wilma
+wilson
+wim
+windows
+wings
+winter
+winterberg
+winters
+wojtyla
+wolf
+wolfgang
+woods
+wordsworth
+workers
+world
+wspr
+wuber
+wuxian
+x
+xai
+xbe
+xbu
+xca
+xcf
+xct
+xdp
+xenofobi
+xi
+xii
+xiii
+xmi
+xmm
+xpc
+xpi
+yasser
+yediot
+yen
+yirmaguas
+yitzhak
+yoint
+york
+yossi
+yousef
+ypf
+yugoslavia
+yusen
+yvette
+z
+za
+zaccaria
+zacchera
+zacchere
+zachia
+zaffate
+zag
+zagabria
+zagaria
+zaini
+zambia
+zamora
+zampa
+zampe
+zampino
+zanacchi
+zandano
+zanicchi
+zanin
+zanne
+zanoncelli
+zanussi
+zanutta
+zanzi
+zapatista
+zapatisti
+zapatistì
+zappando
+zappe
+zaptista
+zar
+zattarin
+zc
+zdf
+zecca
+zecchino
+zedillo
+zeev
+zeffiro
+zeitung
+zelanti
+zelatori
+zelo
+zeman
+zendali
+zenga
+zeppa
+zero
+zerowatt
+zeta
+zetabond
+zetastock
+zetaswiss
+zhirinovski
+zia
+zibellino
+zie
+zig
+zignago
+zii
+ziino
+zimarra
+zimarre
+zimbello
+zimmermann
+zina
+zincone
+zinelli
+zingari
+zingerle
+zio
+zippora
+zironelli
+zitta
+zitte
+zitti
+zitto
+ziuganov
+zo
+zobra
+zocalo
+zocchi
+zoccolo
+zohra
+zola
+zolfanelli
+zolla
+zombi
+zona
+zone
+zonzo
+zoppas
+zoppo
+zoran
+zoratto
+zorro
+zorzi
+zotici
+zou
+zucca
+zucche
ViewGit