def similarityWords(dictOxfordNouns): print "\n --------------------------------------------------" print "new round" total_precision = 0; total_recall = 0; total_accuracy = 0; missingWORD = 0; total_word = 0 count_step = 0 for word in dictOxfordNouns: # print dictOxfordNouns[word] # if word == 'baby': matrix_result = similarity_by_synsets_synsets_nbest_withword_average(word,dictOxfordNouns[word]); if matrix_result == None: missingWORD += 1; continue # print "\n" print word (precision, recall, accuracy) = CompareWithGold.compareGoldWithResult(matrix_result,word) # print (precision, recall, accuracy) if precision != -1: total_precision += precision total_recall += recall total_accuracy += accuracy total_word += 1 count_step += 1 # print "result -------" # print precision # print recall # print accuracy # print "\n" else: missingWORD += 1 # total_word = len(dictOxfordNouns) - missingWORD precision = total_precision/total_word recall = total_recall/total_word accuracy = total_accuracy/total_word print "total:" print total_word print precision print recall print accuracy WriteParametersAndResult.append_result_to_file(precision,recall,accuracy) return (precision, recall, accuracy)
def train_with_random(dict_nouns): _best_result = 0; _best_params = Parameters.get_current_params() for i in range(0,1000): # random_all_feature Parameters.random_params_values() # calculate_result -> current best (precision, recall, accuracy) = SimilarityWordnetOxford.similarityWords(dict_nouns) if accuracy > _best_result: _best_result = accuracy _best_params = Parameters.get_current_params() (best_result_loop, best_params_loop) = train_from_base(dict_nouns) if best_result_loop>= _best_result: _best_result = best_result_loop _best_params = best_params_loop Parameters.set_params_from_arr(_best_params) WriteParametersAndResult.append_params_and_result_to_file(_best_params)