A computer system for processing unstructured data, the computer system comprising a computer processor, a computer memory operatively coupled to the computer processor and the computer memory having disposed within it computer program instructions that, when executed by the processor, cause the computer system to carry out the steps of receiving unstructured data input from a client device, analyzing the unstructured data for features that satisfy logical segment criteria by using natural language processing (NLP), and partitioning the unstructured data into logical segments based on satisfaction of the logical segment criteria.