2016-10-27 7 views
0

Я столкнулся с проблемой, я просто подведу итог тому, что я пытаюсь выполнить, чтобы вы получили четкую картину, чтобы вести меня.Как создать корпус, похожий на movie_review с помощью nltk python 3.4

Я хочу, чтобы создать Corpus нечто похожее на movie_reviews где movie_review было только 2 категории, но где, как и в моем случае я буду иметь несколько категорий и подкатегорий.

Например:

что у меня есть корпус как my_corpus, в котором я хотел создать такие категории, как 'A', 'B', 'C', 'D' и 'E'. Каждая из этих категорий будет содержать подкатегории, такие как «A». Я хочу иметь подкатегории типа «a1», «a2», «a3» и т. Д. Для всех остальных категорий (B, C, D и E). Каждая из этих подкатегорий будет снова иметь свои подкатегории, такие как «a1» может иметь «a1.1», «a1.2» и т. Д. И, наконец, нижняя часть (лист) будет содержать все текст файлов, относящихся к этой категории или подкатегории.

Мой вопрос

1> Как я могу создать такой корпус, есть в любом случае, чтобы сделать это, пожалуйста, руководство меня ваш ответ будет большую помощь, вы можете также отобразить мне ссылку, которая может помочь мне сделать это

2> могу ли я работать в naivebayes Algo или любой другие алго который костюмы к этому случаю, как один, чтобы найти неги и позы в movie_reviews, здесь, в моем случае, а я необходимо найти, что новый вопрос касается какой категории и ее подкатегории и так далее?

Пожалуйста, помогите мне.

+0

вы можете изменить код, если вы организуете его таким же образом. как выглядят ваши данные? –

+0

Мои данные - это текстовый файл ... Причина, по которой мне нужны категории и подкатегории, - это то, что я хотел использовать ее как узел, структуру листьев и т. Д. Для некоторой работы. –

+0

. Я не могу полностью понять часть 2) вашего вопрос, но я уверен, что это не связано с задачей определения читателя корпуса - отдельный вопрос, другими словами. – alexis

ответ

2

Взгляните на документацию (и/или источник) CategorizedCorpusReader, например. как это:

>>> help(nltk.corpus.reader.CategorizedCorpusReader.__init__) 

Это базовый класс; вы фактически используете классифицированный читатель, который соответствует вашему формату данных. Если ваши файлы являются обычным текстом, это будет CategorizedPlaintextCorpusReader. При создании ридера, вы можете определить категории через регулярное выражение, которое извлекает категорию из файла, с помощью файла давая категории, или с помощью словаря передается непосредственно конструктору:

- cat_pattern: A regular expression pattern used to find the 
    category for each file identifier. The pattern will be 
    applied to each file identifier, and the first matching 
    group will be used as the category label for that file. 

- cat_map: A dictionary, mapping from file identifiers to 
    category labels. 

- cat_file: The name of a file that contains the mapping 
    from file identifiers to categories. The argument 
    ``cat_delimiter`` can be used to specify a delimiter. 

Существует нет прямая поддержка иерархических категорий, но вы можете организовать это самостоятельно, так как файл может принадлежать более чем к одной категории. Например, вы должны назначить файл donkey.txt как animal, так и mammal. В файле nltk's brown corpus есть файлы, принадлежащие нескольким категориям, поэтому вы можете проверить его на предмет специфики (он использует подход cat_file).

Система nltk отображает категории в файлы, а не категории нижнего уровня. Если вы зададите вопрос, как я предлагаю, вы сможете написать mycorpus.words(categories=["A", "B"]) и получить слова из всех файлов в категориях Aa1, Aa2 и т. Д. Если вы хотите выявить иерархию своей категории, вам придется самостоятельно ее закодировать. (Например, вы можете расширить класс чтения с помощью метода hierarchy, который просто возвращает дерево категорий.)

+0

Большое спасибо alexis, я пробую это, как вы говорите, скорее всего, этот подход мне поможет. Кроме того, я также сделаю некоторые исследования на corpus.reader, как сказал вам. –

 Смежные вопросы

  • Нет связанных вопросов^_^