@Jaguncio:

você não especificou uma linguagem, mas ok.

Acho que é meio impossível de se fazer, ja que pelo meu ver substantivos,e adjetivos não possuem uma estruturação padrão de letras, fazer um programa 100% funcional seria muito trabalhoso(Ao meu ver, mas podem haver outros jeitos.)

Para verbos fica um pouco mais fácil, já que terminam com "ar","am", etc...

Uma ideia que tive seria assim:

frase:"Eu joguei o faustão pela janela".

Primeiro de tudo, criar arrays (associativos ou não, a gosto) com uma listagem de algumas palavras que sejam verbos, exemplo:

verbo = new Array();

verbo[0] = "Cagar";
verbo[1] = "Jogar";
verbo[2] = "programar";
verbo[3] = "joguei"
etc......


Faça isso também para adjetivos e substantivos.

2-):pegar a frase;
3-):cortar a frase por ocorrência de carácter do tipo espaço, formando arrays(normalmente existem funções nativas que fazem isso, no php, chama-se explode()) ,com cada palavra da frase.

Mais ou menos assim(usando php):

var palavra = explode(" ",frase);

o array palavra ficaria assim:

palavra[0 => "Eu",1=> "joguei",2=>"o",3=>"faustão",4=>"pela",5=>"janela" )

4-):fazer um loop, para correr todas as arrays(palavras da frase);
5-):E em cada laço, verificar se existe a ocorrência da palavra no array que você criou dos verbos.

O programinha que verificaria a ocorrência seria mais ou menos assim:

for(i=0;i<palavra.length;i++){
for(x=0;x<verbo.length;x++){
if(array[i] == verbo[x]){
alert("Existe um verbo na frase.")
}
}
}


É possível adaptá-lo para os adjetivos e substantivos também, apenas trocando o "verbo[x]" por "adjetivo[x]" ou "substantivo[x]" e o alerta.

Resumindo(Se ficou meio confuso =PP):

1-)Criar um array, contendo palavras do tipo verbos, outro do tipo adjetivos e outro do tipo substantivos;
2-)Pegar a frase;
3-)Tranformá-lo em arrays, cortando a frase por espaços;
4-)usando um loop, verificar cada palavra da frase cortada, e verificar se existe tal palavra em um dos arrays de substantivos, adjetivos ou verbos, e mostrando na tela.

É um dos meios que achei, espero que tenha dado para entender =))