How to distinguish between change and actual sent amount looking at transaction data I am building analytics starting from blockchain raw data (blk**.dat files).

I have read in the bitcoin wiki that once the inputs have been chosen for a transaction, they must be all used: so a change is generated back to the original sender (via the same address or a different change one, depending on the client configuration).

While building analytics, I would like to exclude these outputs from any kind of metric, since they let the coin work but do not represent any intelligence at all.

Is there a way to looking at the outputs of a transaction and split them into meaningful sent amounts and change?
There is no way to know with certainty which output is the actual spend, and which is the change, without being involved in the transaction yourself. It is possible to infer this though, consider the following:

Transaction 'X' has 2 inputs (0.5, 0.5), and 2 outputs (0.7, 0.3). Logically, we can infer that the larger output (0.7) is the spend, because if the spend was the 0.3 output, the user could have saved costs by just using one of the 0.5 inputs to send the transaction. 

However, it is possible for users to purposefully transact in a less efficient way, in order to obfuscate their spending habits, so you can never be absolutely certain.