python中令牌和文档之间的区别

问题描述 投票:0回答:1

我在编码方面还很陌生,我试图了解我的代码段出了什么问题。有没有人解释?

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
python token glob spacy
1个回答
0
投票

关于for loop的范围;

每次程序完成对item的处理后,所有变量都会在循环内重置。因此,doc被下一项的doc覆盖。

最后,当您尝试访问doc时,它将打印出在上一个循环中具有的值。

我希望现在有意义。

© www.soinside.com 2019 - 2024. All rights reserved.