Как достать из natasha?
НЕ могли бы вы сказать, как можно достать text и pos из проанализированного текста
[DocToken(stop=9, text='Появление', pos='NOUN', feats=<Inan,Nom,Neut,Sing>), DocToken(start=10, stop=13, text='ООН', pos='PROPN', feats=<Inan,Gen,Fem,Sing>), DocToken(start=14, stop=18, text='было', pos='AUX', feats=<Imp,Neut,Ind,Sing,Past,Fin,Act>)]
появление NOUN
ООН PROPN
tt = 'Появление ООН было обусловлено целым рядом объективных факторов'
from natasha import (
Segmenter,
NewsEmbedding,
NewsMorphTagger,
Doc)
segmenter = Segmenter()
emb = NewsEmbedding()
morph_tagger = NewsMorphTagger(emb)
doc = Doc(tt)
doc.segment(segmenter)
doc.tag_morph(morph_tagger)
doc.tag_morph(morph_tagger)
doc.tokens
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Из doc.tokens можно взять список токенов, каждый токен это объект DocToken, у которого можно запросить атрибуты pos и text
Пример:
from natasha import Segmenter, NewsEmbedding, NewsMorphTagger, Doc
tt = 'Появление ООН было обусловлено целым рядом объективных факторов'
segmenter = Segmenter()
emb = NewsEmbedding()
morph_tagger = NewsMorphTagger(emb)
doc = Doc(tt)
doc.segment(segmenter)
doc.tag_morph(morph_tagger)
for token in doc.tokens:
print(token.pos, token.text)
Результат:
NOUN Появление
PROPN ООН
AUX было
VERB обусловлено
ADJ целым
NOUN рядом
ADJ объективных
NOUN факторов
Автор решения: ganz
→ Ссылка
doc = Doc(text)
doc[0].__dict__['text']
но это грубо, как увидел из справки нужно doc.spans.text