Phrase lemmatise() throws SQLException {
        Connection l = new Connection();
        Statement lanceRequete;
        lanceRequete = l.conn.createStatement();
        ResultSet liste_pneus;
        ResultSet lexique;
        Phrase finalp = new Phrase("");
        String test;
        test = "";
        for (String mot : mots) {
            mot = mot.toLowerCase();
            try {
                if (test.equals("")) {
                    //ajout des noms de produits
                    liste_pneus = lanceRequete.executeQuery("Select * from PNEUS where lower(DESIGNATION) = '" + mot + "'");
                    if (liste_pneus.next()) {
                        test = mot;
                        finalp.mots.add(mot);
                    } else {
                        //ajout des mots du lexique correspondant aux classes grammaticales voulues
                        lexique = lanceRequete.executeQuery("Select * from basemot where lower(MOT) = '" + mot
                                + "' and (CGRAM = 'NOM' "
                                + "or CGRAM = 'VER' "
                                + "or CGRAM = 'ADV' or CGRAM = 'ADJ')"
                                + "order by cgram asc,"
                                + "FREQLEMFILM desc");
                        if (lexique.next()) {
                            finalp.mots.add(lexique.getString("LEMME"));
                        }
                        lexique.close();
                    }
                } else {
                    /*Dans ce else se trouve un début de travail sur un bigramme
                    Cela s'effectue sur la désignation d'un produit lorsqu'il contient plusieurs termes différents
                    ex : "Michelin X85 hiver"*/
                    //ajout des noms de produits
                    liste_pneus = lanceRequete.executeQuery("Select * from PNEUS where lower(DESIGNATION)"
                            + " = '" + test +" "+ mot + "'");
                    if (liste_pneus.next()) {
                        test = mot;
                        finalp.mots.add(mot);
                    } else {
                        test = "";
                        //ajout des mots du lexique correspondant aux classes grammaticales voulues
                        lexique = lanceRequete.executeQuery("Select * from basemot where lower(MOT) = '" + mot
                                + "' and (CGRAM = 'NOM' "
                                + "or CGRAM = 'VER' "
                                + "or CGRAM = 'ADV' or CGRAM = 'ADJ')"
                                + "order by  cgram asc,"
                                + "FREQLEMFILM desc");
                        if (lexique.next()) {
                            finalp.mots.add(lexique.getString("LEMME"));
                        }
                        lexique.close();
                    }
                }
                liste_pneus.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        lanceRequete.close();
        finalp.phrase = finalp.join(finalp.mots);
        return finalp; // renvoie la phrase lémmatisée
    }