Great work indeed! But there are some issues with your approach. You are trying to store a large chunck of data which is not a good approach. It would be better to use the similarity criteria like Jacard's Similarity etc. Apart from that there are issues with the application's Stop button.
Nevertheless, Great effort and clean Code!!