Есть ли более эффективный способ сделать это? Мой код читает текстовый файл и извлекает все существительные.Извлечение всех существительных из текстового файла с помощью nltk
import nltk
File = open(fileName) #open file
lines = File.read() #read all lines
sentences = nltk.sent_tokenize(lines) #tokenize sentences
nouns = [] #empty to array to hold all nouns
for sentence in sentences:
for word,pos in nltk.pos_tag(nltk.word_tokenize(str(sentence))):
if (pos == 'NN' or pos == 'NNP' or pos == 'NNS' or pos == 'NNPS'):
nouns.append(word)
Как уменьшить временную сложность этого кода? Есть ли способ избежать использования вложенных циклов?
Заранее благодарен!
Замените условие if на 'if pos.startswith ('NN'):', также используйте 'set' или' collections.Counter', не сохраняйте список. И сделайте некоторую карту/сокращение вместо понимания списка. В противном случае попробуйте «мелкий разбор», ака 'chunking' – alvas