我正在尝试运行此代码,但它返回一个错误。我不明白。什么可能导致这种情况发生,我应该如何修复/排除问题?
编码:
import pandas as pd
import spacy
dados = pd.read_csv('treino.csv')
nlp = spacy.load('pt_core_news_sm')
textos_para_tratamento = (titulos.lower() for titulos in dados['title'])
def trata_textos(doc):
tokens_validos = []
for token in doc:
e_valido = not token.is_stop and token.is_alpha
if e_valido:
tokens_validos.append(token.text)
if len(tokens_validos) > 2:
return ' '.join(tokens_validos)
textos_tratados = [trata_textos(doc) for doc in nlp.pipe(textos_para_tratamento,
batch_size= 1000,
n_process = -1)]
错误信息:
运行时错误:在当前进程完成其引导阶段之前尝试启动一个新进程。
这可能意味着您没有使用 fork 来启动您的子进程,并且您忘记在主模块中使用正确的习惯用法:
if__name__=='__main__':
freeze_support()
...
如果程序不会被冻结以生成可执行文件,则可以省略“freeze_support()”行。
错误消息告诉您重新组织代码以仅在主模块中运行一次。由于您的代码无法按照给定的方式运行,因此我只能建议进行以下重组:
import pandas as pd
import spacy
def trata_textos(doc):
tokens_validos = []
for token in doc:
e_valido = not token.is_stop and token.is_alpha
if e_valido:
tokens_validos.append(token.text)
if len(tokens_validos) > 2:
return ' '.join(tokens_validos)
if __name__ == '__main__':
dados = pd.read_csv('treino.csv')
nlp = spacy.load('pt_core_news_sm')
textos_para_tratamento = (titulos.lower() for titulos in dados['title'])
textos_tratados = [trata_textos(doc) for doc in nlp.pipe(textos_para_tratamento,
batch_size= 1000,
n_process = -1)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句