Мне нужно выполнить распознавание/классификацию именных имен и сгенерировать вывод в формате с меткой IOB.NLTK - преобразование фрагментированного дерева в список (отметка IOB)
Я использую chunker NLTK, поставляемый NLTK-train library, но это создает дерево, а не список тегов IOB.
def chunk_iob(list_of_words):
nltk_tagger = nltk.data.load("taggers/conll2002_aubt.pickle")
nltk_chunker = nltk.data.load("chunkers/conll2002_NaiveBayes.pickle")
t = nltk_tagger.tag(list_of_words)
print(t)
c = nltk_chunker.parse(t)
print(c)
и мы получаем с как дерево, как:
(S
(LOC Barcelona/NC)
(PER Juan/NC :/Fd)
...
Но я ищу что-то вроде:
Barcelona - LOC
Juan - PER
...
который является IOB помеченный список параметра list_of_words, в том же порядке, что и list_of_words.
Как я могу получить этот помеченный список из дерева?
У них есть эквивалентные соленые огурцы для 2,7? Я получаю сообщение об ошибке с вашим скриптом –
Обратите внимание, что 'NLTK-trainer' не' NLTK'; P – alvas
@bogs Кажется, у вас есть ясность, что такое IOB, я боюсь, что я не получаю ясности в IOB, не могли бы вы объяснить в простой непрофессиональный термин, что это означает внутри или снаружи кусок начало куска с простым примером ... я верю, что я понимаю Чиндинг и Чанкинг. Большое спасибо Приветствия raky https://stackoverflow.com/questions/1598940/in-natural- язык обработки-что-это-на-цель-в-CHUNKING – raky