Я работаю над токенизацией, лемматизацией и удалением стоп-слов из документа. Однако Spacy выдает ошибку, сообщающую, что модуль token.pos_ не принимает 'str'. Я считаю, что строки - это правильный формат, поправьте меня, если я ошибаюсь. Как мне исправить эту ошибку?
words = []
classes = []
documents = []
ignore_words = ['?']
# loop through each sentence in our training data
for pattern in training_data:
# tokenize each word in the sentence
w = gensim.utils.simple_preprocess(str(pattern['sentence']), deacc=True)
# add to our words list
words.extend(w)
# add to documents in our corpus
documents.append((w, pattern['class']))
# add to our classes list
if pattern['class'] not in classes:
classes.append(pattern['class'])
nltk.download('stopwords')
stop_words = stopwords.words('english')
stop_words.extend(["be", "use", "fig"])
words = [word for word in words if word not in stop_words]
# stem and lower each word and remove duplicates
import en_core_web_lg
nlp = en_core_web_lg.load()
print(words[0:10])
words = [token.lemma_ for token in words if token.pos_ in postags]
words = list(set(words))
AttributeError Traceback (most recent call last)
<ipython-input-72-5c31e2b5a13c> in <module>()
26
27 from spacy import tokens
---> 28 words = [token.lemma_ for token in words if token.pos in postags]
29 words = list(set(words))
30
<ipython-input-72-5c31e2b5a13c> in <listcomp>(.0)
26
27 from spacy import tokens
---> 28 words = [token.lemma_ for token in words if token.pos in postags]
29 words = list(set(words))
30
AttributeError: 'str' object has no attribute 'pos'