in reply to relevant keywords from a website

You might try applying bayesian filters. There are various modules using such filters, many of them developed for detecting SPAM. If you don't want to use these filters operationally, you could train the filter then review its probabilities to decide which keywords are relevant.

AI::Categorizer looks particularly interesting, though I haven't used it. Otherwise you can search CPAN for bayes to see what might suit your needs.