Тегирование части речи и распознавание сущностей — python

Я хочу выполнить тегирование части речи и распознавание объектов в python, аналогично функциям Maxent_POS_Tag_Annotator и Maxent_Entity_Annotator openNLP в R. Я бы предпочел код в python, который принимает входные данные в виде текстового предложения и выводит в виде различных функций, таких как число «CC». , номер "CD", номер "DT" и т. д. CC, CD, DT - это теги POS, используемые в Penn Treebank. Таким образом, должно быть 36 столбцов/функций для тегов POS, соответствующих 36 тегам POS, как в POS Penn Treebank. Я хочу реализовать это в модуле Azure ML «Выполнение скрипта Python», а Azure ML поддерживает python 2.7.7. Я слышал, что nltk в python может работать, но я новичок в python. Любая помощь будет оценена по достоинству.




Ответы (1)


Взгляните на книгу NTLK, раздел "Категоризация и тегирование слов".

Простой пример, он использует набор тегов Penn Treebank:

from nltk.tag import pos_tag
from nltk.tokenize import word_tokenize
pos_tag(word_tokenize("John's big idea isn't all that bad.")) 

[('John', 'NNP'),
("'s", 'POS'),
 ('big', 'JJ'),
 ('idea', 'NN'),
 ('is', 'VBZ'),
 ("n't", 'RB'),
 ('all', 'DT'),
 ('that', 'DT'),
 ('bad', 'JJ'),
 ('.', '.')]

Затем вы можете использовать

from collections import defaultdict
counts = defaultdict(int)
for (word, tag) in pos_tag(word_tokenize("John's big idea isn't all that bad.")):
    counts[tag] += 1

чтобы получить частоты:

defaultdict(<type 'int'>, {'JJ': 2, 'NN': 1, 'POS': 1, '.': 1, 'RB': 1, 'VBZ': 1, 'DT': 2, 'NNP': 1})
person hellpanderr    schedule 06.09.2015
comment
Спасибо @hellpanderr. Можете ли вы также указать шаги, как импортировать nltk в python? Я новичок в питоне. Виндовс 7 - 64 бит. - person ankur; 07.09.2015
comment
@ankur Шаги для импорта nltk в python: 1. откройте окно cmd; 2. введите команду «cd» в путь к установленному Python; 3. команда «Сценарии/pip.exe установить ntlk» - person Peter Pan; 07.09.2015
comment
@PeterPan-MSFT Я использую Python 2.7.7. пип не установлен. Это показывает, что ошибка сценариев не распознается как внутренняя или внешняя команда. - person ankur; 07.09.2015
comment
@PeterPan-MSFT еще один вопрос по теме. Если я хочу использовать только pos_tag, word_tokenize, какую опцию я должен указать в nltk.download(info_or_if=' ') под id? - person ankur; 07.09.2015
comment
@ankur Загрузите pip-7.1.2.tar.gz со страницы pypi.python.org/pypi/pip, распакуйте его и введите команду «python setup.py», чтобы установить pip. - person Peter Pan; 07.09.2015
comment
@PeterPan-MSFTImport Ошибка: нет модуля с именем setuptools - person ankur; 07.09.2015
comment
@ankur Пожалуйста, создайте новую ветку для вашего более связанного вопроса о NTLK, комментарий не используется для ответа на детали программирования. Спасибо. - person Peter Pan; 07.09.2015