Что такое блокировщик по умолчанию для набора инструментов NLTK в Python?

Я использую их маркировку POS по умолчанию и токенизацию по умолчанию ... и этого кажется достаточно. Я бы тоже хотел их чанкер по умолчанию.

Я читаю книгу о наборе инструментов NLTK, но мне не кажется, что у них есть блокировщик по умолчанию?


person TIMEX    schedule 06.11.2009    source источник


Ответы (2)


Вы можете выйти из коробки с именем фрагментации сущностей с помощью метода nltk.ne_chunk(). Он принимает список кортежей с тегами POS:

nltk.ne_chunk([('Barack', 'NNP'), ('Obama', 'NNP'), ('lives', 'NNS'), ('in', 'IN'), ('Washington', 'NNP')])

приводит к:

Tree('S', [Tree('PERSON', [('Barack', 'NNP')]), Tree('ORGANIZATION', [('Obama', 'NNP')]), ('lives', 'NNS'), ('in', 'IN'), Tree('GPE', [('Washington', 'NNP')])])

Он идентифицирует Барака как личность, а Обаму как организацию. Значит, не идеально.

person ealdent    schedule 06.11.2009
comment
Что, если меня не очень беспокоят named_entities, а фрагментация в целом. Например, желтая собака — это кусок, и бежит — это кусок. - person TIMEX; 06.11.2009
comment
Да, для этого, насколько я знаю, нет значения по умолчанию (хотя я не знаю всего о nltk, чтобы быть уверенным). Вы можете использовать RegexpChunkParser, хотя вам придется разрабатывать правила самостоятельно. Вот пример: gnosis.cx/publish/programming/charming_python_b18.txt - person ealdent; 07.11.2009

Я также не смог найти чанчер/мелкий парсер по умолчанию. Хотя в книге описывается, как построить и обучить его с примерами функций. Придумать дополнительные функции для получения хорошей производительности не должно быть слишком сложно.

См. раздел главы 7, посвященный обучению на основе классификатора. Чанкеры.

person James Clarke    schedule 07.11.2009