То, что вы спрашиваете, является горячей темой исследования в области интеллектуального анализа текста и обработки естественного языка. Тем не менее, ваш вопрос слишком общий IMO.
Самое простое, с чего вы могли бы начать, это определить слова, которые часто встречаются вместе в предложении (или в последовательных предложениях). Это, по крайней мере, даст вам какую-то корреляцию. Посмотрите на изучение правил ассоциации, как предложил пользователь 1161595. Методы кластеризации также могут помочь. Для начала взгляните на кластерный анализ и текстовую кластеризацию .
Чтобы извлечь отношения между словами, вам нужно углубиться в обработку естественного языка. Вы можете использовать Google Scholar для поиска связанных исследований в области интеллектуального анализа текста, анализа тенденций и поиска информации.
Кроме того, следующие ссылки могут дать вам представление о том, с чем вы имеете дело:
Что касается реализации, вы можете взглянуть на фреймворки с открытым исходным кодом, упомянутые в Wikipedia . Кроме того, существует множество библиотек машинного обучения и НЛП.
И последнее, но не менее важное: я считаю, что есть большая вероятность, что нечто подобное тому, что вы ищете, уже кем-то реализовано. Таким образом, сквозной поиск в Google с правильными ключевыми словами может дать вам то, что вы хотите, не углубляясь в исследования.