06 мая 2012 г., 02:36 отjogojapanTE0

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

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

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

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

NB: установка абсолютно такая же, какMovie_reviews корпус (~nltk_data\corpora\movie_reviews).

Ответы на вопрос(1)

09 мая 2012 г., 14:24 отalexis

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

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

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

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

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

ВАШ ОТВЕТ НА ВОПРОС