Создание пользовательского классифицированного корпуса в NLTK и Python

Я испытываю небольшую проблему, которая связана с регулярными выражениями и CategorizedPlaintextCorpusReader в Python.

Я хочу создать пользовательский классифицированный корпус и обучить на нем классификатор наивного Байеса. Моя проблема заключается в следующем: Я хочу иметь две категории: "pos" и "neg". Положительные файлы находятся в одном каталоге,main_dir/pos/*.txt, а отрицательные находятся в отдельном каталоге,main_dir/neg/*.txt.

как я могу использовать CategorizedPlaintextCorpusReader для загрузки и маркировки всех положительных файлов в каталог pos, и сделать то же самое для отрицательных?

NB: настройка абсолютно такая же, как Movie_reviews корпус (~nltk_datacorporamovie_reviews).

1 ответов


вот и ответ на мой вопрос. Поскольку я думал об использовании двух случаев, я думаю, что хорошо охватить оба в случае, если кому-то нужен ответ в будущем. Если у вас есть та же настройка, что и movie_review corpus - несколько папок, помеченных так же, как вы хотите, чтобы ваши метки вызывались и содержали данные обучения, вы можете использовать это.

reader = CategorizedPlaintextCorpusReader('~/MainFolder/', r'.*\.txt', cat_pattern=r'(\w+)/*')

другой подход, который я рассматривал, - это поместить все в одну папку и назвать файлы 0_neg.формат txt, 0_pos.txt, 1_neg.txt etc. Код для вашего читателя должен выглядеть примерно так:

reader = CategorizedPlaintextCorpusReader('~/MainFolder/', r'.*\.txt', cat_pattern=r'\d+_(\w+)\.txt')

Я надеюсь, что это поможет кому-то в будущем.