It is easy enough to use a chess engine to "annotate" a game to the extent of pointing out mistakes and blunders: when the evaluation function drops by greater than a certain amount, the move is deemed bad enough to merit a "?" or a "??".
Has anyone tried to develop a program to add exclamation marks to good/brilliant moves? In the eyes of a chess engine, those moves would usually be the best move for the position, but just being the best move does not make a move brilliant, because the best move may be obvious. Exclamation marks are added to moves that are hard to find by humans, which is somewhat subjective. But I imagine one could come up with some rules or heuristics, at least for things such as recognizing sound sacrifices. Or maybe there is a way to train the system using a library of annotated games.
I wouldn't expect such a tool to be better than a good human annotator, but I find the question interesting from an artificial intelligence perspective.