【发布时间】:2020-11-19 04:08:02
【问题描述】:
所以我不小心忘记在我的方法中包含一个 return 语句,它在 10 小时后才运行完毕,所以我不想再次运行它。有没有办法我可以在这个函数中访问wordlist?
def rm_foreign_chars(corpus):
wordlist=[]
for text in corpus:
for sentence in sent_tokenize(text):
wordlist.append(sentence)
for word in word_tokenize(sentence):
for c in symbols:
if c in word:
if sentence in wordlist:
wordlist.remove(sentence)
break
Symbols 是一个符号列表:symbols = '฿‑‒–—―‖†‡•‰⁰⁷⁸₂₣℃™→↔∆∙≤⋅─■□▪►▼●◦◾★☎☺♣♦✓✔❖❗➡⠀ⱻ�ₒ'1
【问题讨论】:
-
不。没了。
-
修复您的错误并开始重新运行。
-
翻录列表,这就是为什么你在实现之前测试你的功能!
-
函数完成后,局部变量会被垃圾回收,所以可能不会。对于未来的重播,与其将每个句子都添加到列表中,然后如果它的任何单词中包含某个符号,则将其删除,为什么不简单地将每个没有该符号的句子写入某个文件呢?没有丢失结果的风险,即使是中途也不复杂,所以它应该更快。
-
您有一种非常复杂且低效的过滤带有符号的句子的方法。它做了很多不必要的工作。清理它,下一次运行应该比 10 小时快很多。