Преобразование нетегированных корпусов в тегированные (NLTK)

У меня есть корпус открытого текста, который я хочу пометить и сохранить, чтобы я мог использовать его в дальнейшем. Как лучше всего это сделать?

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


person Bendar    schedule 22.07.2011    source источник


Ответы (2)


Взгляните на другие корпуса с тегами, такие как коричневый, для примеров вывода. Это даст вам представление о том, как должен выглядеть размеченный корпус. Затем загрузите свой корпус (с PlaintextCorpusReader) и повторите предложения, пометив каждое предложение. Затем запишите каждое помеченное предложение в файл, создав строку из помеченного предложения, как в ' '.join([tuple2str(t) for t in tagged_sent]) (после того, как вы сделаете from nltk.tag.util import tuple2str). И это нормально, если ваш код «беспорядочный», если он выполняет свою работу правильно. Здесь вы не ищете элегантный алгоритм, вы запускаете очень специфический скрипт для создания пользовательского корпуса.

person Jacob    schedule 22.07.2011

Вы делаете простую маркировку unigram или фактически анализируете текст? Я считаю, что NLTK анализирует / тегирует так, что вывод каждого токена (токен, PoS). Является ли массив кортежей неприемлемым для хранения ваших корпусов? Почему вы находите это грязным?

person sampwing    schedule 22.07.2011