我正在使用包含在nltk的nltk数据中的一些语料库来找出某些算法。在
所以我的代码通常是这样的:
import re, nltk, random
from nltk.corpus import reuters
def find_test_and_train_data():
return [fileid for fileid in reuters.fileids() if re.match(r"^training/", fileid)], [fileid for fileid in reuters.fileids() if re.match(r"^test/", fileid)]
def generate_random_data(train_and_test_fileids):
random.seed(348) ; random.shuffle(train_and_test_fileids[0])
return train_and_test_fileids[0][2000:], train_and_test_fileids[0][:2000]
def fileid_words(fileid):
return [word.lower() for line in reuters.words(fileid) for word in line.split() if re.match('^[A-Za-z]+$', word)]
if __name__ == '__main__':
train_fileids, dev_fileids = generate_random_data(find_test_and_train_data())
train_data=fileid_words(train_fileids)
dev_data=fileid_words(dev_fileids)
因此,如果我把它运行到一个交互式解释器中,我就可以在train_data
,dev_data
及其对应的文件ID上执行任务,而无需重新填充变量(这是一项非常耗时的任务)。在
但是,我希望能够将它写入一个.py文件,这样我就可以保存统计上有趣的算法。在
我可以通过两次输入来实现这一点,例如:当我让一个函数在解释器中工作时,我将它复制并粘贴到.py文件中,但是这样做效率很低,而且我失去了ide的特性。在
是否有任何ide或Python模块可以自动保持Python脚本在内存中运行,或者将变量值(如test_data
-存储在数据库中)?在
谢谢你的建议
python特有的方法是使用pickle:
http://docs.python.org/library/pickle.html
您只需将变量保存到磁盘,然后将其加载回:
如果您希望以将来与其他语言兼容的格式保存,请考虑JSON。在
另一种解决方案是使用inspect模块从中获取代码字符串,并将其保存到文件.py. 如果您使用inspect模块,您将能够获得代码对象和事件源代码,然后能够将原始代码放入字符串中,然后将其放入类似持久存储的文件中。在
相关问题 更多 >
编程相关推荐