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)
Esempio n. 2
0
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)