python小技巧

一、关于时间

1、获得当前时间

from  time import strftime,localtime
time.time() # 获得时间戳
时间戳

2、获得当前时间

# 获得当前时间
strftime("%Y-%m-%d %H:%M:%S", localtime())
image.png

3、获得时间差

import datetime
starttime = datetime.datetime.now()
endtime = datetime.datetime.now()
duringtime = endtime - starttime
print duringtime.seconds
时间差

二、文件夹是否存在

如果文件夹存在,则忽视;如果文件夹不存在,则创建文件夹

 if not os.path.exists('log_save_model'):
        os.mkdir('log_save_model')

三、pytorch模型存和取

1、保存模型

 torch.save(self.model.state_dict(),地址)

2、载入模型

self.model.load_state_dict(torch.load("地址"))

四、格式化输出

python

print("log_save_model/{}/{}-{}-{}-{}-{}-{:.4f}-{:.4f}.pkl".format(self.opt.des,
self.opt.model_name,
self.opt.dataset,
self.opt.seed,
self.opt.batch_size, 
self.opt.learning_rate, 
max_val_f1,max_val_acc)))

五、NLP词性还原

      # 引用库
      import nltk
      from nltk.stem import WordNetLemmatizer
      from nltk.corpus import wordnet


       #  获取单词的词性
             def get_wordnet_pos(tag):
                 if tag.startswith('J'):
                     return wordnet.ADJ
                 elif tag.startswith('V'):
                     return wordnet.VERB
                 elif tag.startswith('N'):
                     return wordnet.NOUN
                 elif tag.startswith('R'):
                    return wordnet.ADV
                 else:
                     return None
            
           # 词性还原
            lemmas_sent = []
            for tag in text.split():
                wordnet_pos = get_wordnet_pos(tag) or wordnet.NOUN
                lemmas_sent.append(lemmatizer.lemmatize(tag, pos=wordnet_pos))  # 词形还原

展示如例如:foods =>food
"ate”=>"eat"

推荐阅读更多精彩内容