Создание пользовательского классифицированного корпуса в 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')
Я надеюсь, что это поможет кому-то в будущем.