#python #dictionary #nlp #spacy #pos-tagger
#python #словарь #nlp #spacy #pos-теггер
Вопрос:
Я довольно новичок в программировании и пытаюсь создать небольшой синтаксический анализатор с пакетом spacy. Что я хотел бы сделать, так это проанализировать любой текст (в виде строки) и сохранить каждое слово плюс его POS-тег. Я думал о том, чтобы сделать это со словарем, в котором каждое слово является ключом, а его POS-тегом — его значением, чтобы оно выглядело так:
import spacy
tokendictionary = {}
nlp = spacy.load("en_core_web_sm")
doc = nlp("I will not regret this, so this is not a regret.")
for token in doc:
tokendictionary[token] = token.pos_
И я хотел бы получить что-то вроде этого:
{I: 'PRON', will: 'VERB', not: 'PART', regret: 'VERB', this: 'DET', ,: 'PUNCT', so: 'CCONJ', this: 'DET', is: 'AUX', not: 'PART', a: 'DET', regret: 'NOUN', .: 'PUNCT', Do: 'AUX', you: 'PRON', regret: 'VERB', this: 'DET', ?: 'PUNCT'}
Однако я знаю, что не могу хранить идентичные ключи, но мне нужно сохранить каждый токен в памяти (как в этом примере для «сожаления», поэтому, даже если он появляется дважды или более, он все равно должен храниться отдельно и должен быть легко доступен. Какой был бы лучший способ сделать это?
Комментарии:
1. Используйте список кортежей.
2. Ваши токены уже хранятся в контейнере called
doc
. Какая может быть причина иметь еще один?