Esempio n. 1
0
def evaluate_cli(model, context_embeddings_op, elmo_context, elmo_ids):
    config = load_config(FLAGS.config_file)
    logger = get_logger(FLAGS.log_file)

    if FLAGS.task == "NER":
        with open(FLAGS.necessary, "rb") as f:
            word_to_id, id_to_word, char_to_id, id_to_char, pumsa_to_id, id_to_pumsa, tag_to_id, id_to_tag, ner_morph_tag = pickle.load(
                f)

    komoran = Komoran()
    results = []
    while True:
        # line = input("문장을 입력하세요.:")
        line = [
            "찬민이의 멘탈이 산산조각났습니다.", "진짜 진짜 진짜 맛있는 진짜 라면", "집에 가고 싶읍니다.", "집",
            "가 가 가 가 가 가, 가, 가 ,가, 가 가 가 가 가 가, 가, 가 ,가 !!!!! ."
        ]
        for idx in range(0, len(line), 5):
            l = line[idx:idx + 2]
            results.extend(
                model.evaluate_lines(
                    sess, context_embeddings_op, elmo_context, elmo_ids,
                    ner_morph_tag,
                    inputs_from_sentences(komoran, l, word_to_id, pumsa_to_id,
                                          char_to_id, elmo_dict,
                                          FLAGS.max_char_length,
                                          ner_morph_tag), id_to_tag))
        print(results)
Esempio n. 2
0
	def infer(sentences, **kwargs):
		config = load_config(FLAGS.config_file)
		logger = get_logger(FLAGS.log_file)
		
		reformed_sentences = [' '.join(sen[1]) for sen in sentences]
		result = model.evaluate_lines(sess, inputs_from_sentences(reformed_sentences, char_to_id, FLAGS.max_char_length), id_to_tag)
		'''
		result = [
			       (0.0, ['ARG0', 'ARG3', '-']),
				   (0.0, ['ARG0', 'ARG1', '-'])
				 ]
		# evaluate_lines 함수는 문장 단위 분석 결과를 내어줍니다.
		# len(result) : 문장의 갯수, 따라서 위 예제는 두 문장의 결과입니다.
		# result[0] : 첫번째 문장의 분석 결과, result[1] : 두번째 문장의 분석 결과.
		
		# 각 문장의 분석 결과는 다시 (prob, [labels])로 구성됩니다.
		# prob에 해당하는 자료는 이번 task에서 사용하지 않습니다. 따라서 그 값이 결과에 영향을 미치지 않습니다.
		# [labels]는 각 어절의 분석 결과를 담고 있습니다. 따라서 다음과 같이 구성됩니다.
		## ['첫번째 어절의 분석 결과', '두번째 어절의 분석 결과', ...]
		# 예를 들면 위 주어진 예제에서 첫번째 문장의 첫번째 어절은 'ARG0'을, 첫번째 문장의 두번째 어절은 'ARG3'을 argument label로 가집니다.

		### 주의사항 ###
		# 모든 어절의 결과를 제출하여야 합니다.
		# 어절의 순서가 지켜져야 합니다. (첫번째 어절부터 순서대로 list 내에 위치하여야 합니다.)
		'''
		return result
Esempio n. 3
0
def evaluate_cli(model):
	config = load_config(FLAGS.config_file)
	logger = get_logger(FLAGS.log_file)
	with open(FLAGS.map_file, "rb") as f:
		char_to_id, id_to_char, tag_to_id, id_to_tag = pickle.load(f)
	while True:
		line = input("문장을 입력하세요.:")
		result = model.evaluate_lines(sess, inputs_from_sentences([line], char_to_id, FLAGS.max_char_length), id_to_tag)
		print(result)
Esempio n. 4
0
    def infer(sentences, **kwargs):
        config = load_config(FLAGS.config_file)
        logger = get_logger(FLAGS.log_file)
        if config['elmo']:
            elmo_dict = load_elmo_dict(FLAGS.elmo_dict)
        else:
            elmo_dict = None

        results = []
        komoran = Komoran()
        reformed_sentences = [' '.join(sen[1]) for sen in sentences]
        for idx in range(0, len(reformed_sentences), 100):
            reformed_sentence = reformed_sentences[idx:idx + 100]
            results.extend(
                model.evaluate_lines(
                    sess, context_embeddings_op, elmo_context, elmo_ids,
                    ner_morph_tag,
                    inputs_from_sentences(komoran, reformed_sentence,
                                          word_to_id, pumsa_to_id, char_to_id,
                                          elmo_dict, FLAGS.max_char_length,
                                          ner_morph_tag), id_to_tag))
            # results.extend(model.evaluate_lines(sess, context_embeddings_op, elmo_context, elmo_ids, ner_morph_tag,\
            # 									inputs_from_sentences(komoran, reformed_sentence, word_to_id, pumsa_to_id, char_to_id, elmo_dict, FLAGS.max_char_length, ner_morph_tag), id_to_tag))
        '''
		result = [
			       (0.0, ['ARG0', 'ARG3', '-']),
				   (0.0, ['ARG0', 'ARG1', '-'])
				 ]
		# evaluate_lines 함수는 문장 단위 분석 결과를 내어줍니다.
		# len(result) : 문장의 갯수, 따라서 위 예제는 두 문장의 결과입니다.
		# result[0] : 첫번째 문장의 분석 결과, result[1] : 두번째 문장의 분석 결과.
		
		# 각 문장의 분석 결과는 다시 (prob, [labels])로 구성됩니다.
		# prob에 해당하는 자료는 이번 task에서 사용하지 않습니다. 에 영향을 미치지 않습니다.
		# [labels]는 각 어절의 분석 결과를 담고 있습니다. 따라서 다음과 같이 구성됩따라서 그 값이 결과니다.
		## ['첫번째 어절의 분석 결과', '두번째 어절의 분석 결과', ...]
		# 예를 들면 위 주어진 예제에서 첫번째 문장의 첫번째 어절은 'ARG0'을, 첫번째 문장의 두번째 어절은 'ARG3'을 argument label로 가집니다.

		### 주의사항 ###
		# 모든 어절의 결과를 제출하여야 합니다.
		# 어절의 순서가 지켜져야 합니다. (첫번째 어절부터 순서대로 list 내에 위치하여야 합니다.)
		''' ''
        # results[1000000000000000000000000]
        # test
        return results