1. A method for predicting a personality of at least one human subject, the method comprising: receiving data associated with the at least one human subject from one or more sources; clustering the data based on one or more topics of interest of the at least one human subject using one or more topic modeling algorithms; predicting at least one high level personality trait associated with the at least one human subject by analyzing the clustered data, the at least one high level personality trait being one of one or more high level personality traits defined by a first model; and predicting at least one personality profile by classifying the at least one high level personality trait into one or more granular level personality traits defined by a second model, the classifying being based on clustered data, wherein at least one of the receiving data, the clustering the data, the predicting at least one first personality, and the predicting at least one second personality is performed by a processor.