No tiene mucho sentido lo que haces, al menos si tratas de pluralizar todo dentro de la consulta.
Deberías tener una clase para pluralizar y usar dichos valores para generar tu consulta, de cualquier modo en algunos casos LIKE funcionaría bien.
Cita: WHERE palabra LIKE '%mariposa%'
Eso capturaría igualmente "mariposas".
Yo usaría un diccionario para generar las palabras de búsqueda primero.