То, что вы пытаетесь сделать, это удалить " стоп-слова " из текста. Вы можете найти список английских стоп-слов по ссылке. В зависимости от того, сколько стоп-слов вы используете, может быть более эффективно создать HashSet слов, чтобы вы могли определить, является ли слово стоп-словом в постоянном времени (с помощью содержит () функция), что подразумевает, что фильтрация всего текста будет занимать линейное время по количеству слов. Это такая простая операция, что я сомневаюсь, что вы найдете какую-то библиотеку для этого, но это не должно занять много времени.
Что касается выбора слов для использования ... это действительно зависит от того, что вы пытаетесь сделать. Если вы выполняете какой-то алгоритм машинного обучения для модели пакета слов , то вам действительно нужно попробовать разные варианты слов и посмотреть, какие из них приводят к наименьшей ошибке проверки. С точки зрения контекста, много слов действительно не нужны. Любой, кто хорошо говорит по-английски, может сказать вам, когда вы выбросили «или» или «или». Могут быть общие слова, которые важны для определенной неоднозначности, но в зависимости от вашего приложения они могут быть или не быть необходимыми. Например, если вы хотите знать, кто что-то сделал, то устранение «он», «она» и т. Д. Может быть проблемой, но если вас волнует только то, произошло ли такое-то действие, а вы на самом деле не не важно, кто это сделал, тогда исключить местоимения было бы хорошо.