我在编码方面还很陌生,我试图了解我的代码段出了什么问题。有没有人解释?
import spacy
nlp = spacy.load("en_core_web_sm")
import glob
list_tokens = []
text_dir = sorted(glob.glob("./Final_corpus/*.txt"))
for item in text_dir:
with open(item) as file:
text = file.read()
text = text.lower()
doc = nlp(text, disable=["parser","ner"])
for token in doc:
list_tokens.append(token.text)
len(list_tokens)
19213
但是当我改为:
import spacy
nlp = spacy.load("en_core_web_sm")
import glob
list_tokens = []
text_dir = sorted(glob.glob("./Final_corpus/*.txt"))
for item in text_dir:
with open(item) as file:
text = file.read()
text = text.lower()
doc = nlp(text, disable=["parser","ner"])
for token in doc:
list_tokens.append(token.text)
我得到:
len(doc)
827
关于for loop
的范围;
每次程序完成对item
的处理后,所有变量都会在循环内重置。因此,doc
被下一项的doc
覆盖。
最后,当您尝试访问doc
时,它将打印出在上一个循环中具有的值。
我希望现在有意义。