我想使用spacy对德语Wikipedia进行句子分割,但问题是它非常缓慢。经过一些清理后,维基百科大约有55,00个文件,每个文件大约1 Mb。处理其中的一半并将分段的文本写入新文件大约需要24小时,而且句子也没有正确分段
nlp = spacy.load('de_core_news_sm')
for file in files:
file_path = join(rootdir, path, file)
new_file_name = join(output_dir, file + ".txt")
with open(file_path, 'r+', encoding='utf-8') as f:
with open(new_file_name, 'w', encoding='utf-8') as new_file:
content = f.readlines()
doc = ""
for i in range(len(content)):
doc = doc + content[i]
doc = nlp(doc)
sentences = list(doc.sents)
for i in range(len(sentences)):
new_file.write(sentences[i].string.strip() + '\n')
new_file.write('\n')
doc = ""
细分本身存在问题,例如:此输入段落:
“玛丽亚一世(英格兰)
Maria I. Tudor(),诸如“ Maria die Katholische”或“ Maria die Blutige”(* 18. 18年2月,格林威治);†17.November 1558 in St James's Palace),战争于1553年至1558年至1558年,英格兰国王柯尼金·冯和爱尔兰与帝王之王。 Sie战争死于Tochter desKönigsHeinrichs VIII。和塞纳·弗劳·凯瑟琳娜·冯·阿拉贡Als ihr Vater die Ehe vom englischen Klerusfürnichtigerklärenließ和Anne Boleyn heiratete,Wurde Maria dauerhaft von ihrer Mutter getrennt,zumköniglichenBastarderklärtund von der Thronfolge ausgeschloss>
具有以下输出:
“玛丽亚一世(英格兰) 玛丽亚·都铎(Maria I. Tudor)
(),诸如“玛丽亚死于天主教”或“玛丽亚
Blutige
”(*
†17。11月11日(圣詹姆斯宫1558年),战争于1553年至1558年,国王与英格兰,爱尔兰和德黑兰之间的国王帝侯。
Sie war die Tochter desKönigsHeinrichs
VIII。和塞纳·弗劳·凯瑟琳娜·冯·阿拉贡
Als ihr Vater die Ehe vom englischen Klerusfürnichtigerklärenließ和Anne Boleyn heiratete,Wurde Maria dauerhaft von ihrer Mutter getrennt,zumköniglichenBastarderklägert和von der Thronfolge aus”。
请注意,在输出中我将每句话写在新行中