DOI QR코드

DOI QR Code

Performance Improvement of Context-Sensitive Spelling Error Correction Techniques using Knowledge Graph Embedding of Korean WordNet (alias. KorLex)

한국어 어휘 의미망(alias. KorLex)의 지식 그래프 임베딩을 이용한 문맥의존 철자오류 교정 기법의 성능 향상

  • Lee, Jung-Hun (Grand Information Technology Research Center) ;
  • Cho, Sanghyun (Dept. of Information Convergence Eng., Graduate School, Pusan National University) ;
  • Kwon, Hyuk-Chul (Dept. of Information Computer Science., College of Eng., Pusan National University)
  • Received : 2021.11.15
  • Accepted : 2022.02.24
  • Published : 2022.03.31

Abstract

This paper is a study on context-sensitive spelling error correction and uses the Korean WordNet (KorLex)[1] that defines the relationship between words as a graph to improve the performance of the correction[2] based on the vector information of the word embedded in the correction technique. The Korean WordNet replaced WordNet[3] developed at Princeton University in the United States and was additionally constructed for Korean. In order to learn a semantic network in graph form or to use it for learned vector information, it is necessary to transform it into a vector form by embedding learning. For transformation, we list the nodes (limited number) in a line format like a sentence in a graph in the form of a network before the training input. One of the learning techniques that use this strategy is Deepwalk[4]. DeepWalk is used to learn graphs between words in the Korean WordNet. The graph embedding information is used in concatenation with the word vector information of the learned language model for correction, and the final correction word is determined by the cosine distance value between the vectors. In this paper, In order to test whether the information of graph embedding affects the improvement of the performance of context- sensitive spelling error correction, a confused word pair was constructed and tested from the perspective of Word Sense Disambiguation(WSD). In the experimental results, the average correction performance of all confused word pairs was improved by 2.24% compared to the baseline correction performance.

Keywords

1. 서론

철자오류의 종류는 2가지로 단순 철자오류(sim-ple spelling error)와 문맥의존 철자오류(context-sensitive spelling error)로 나뉜다. 단순 철자오류는 단어 사전의 단어와 비교하여 오류를 찾아낼 수 있으며, 그에 비해 문맥의존 철자오류는 하나의 단어로는 올바르나 주변 문맥과 의미적으로 맞지 않는 것을 말한다. 문맥의존 철자오류의 교정은 문맥을 이해하고 접근해야 하므로 교정 난도가 단순 철자오류에 비해 높다. 본 논문에서는 기존의 문맥의존 철자오류교정 기법[2]의 성능 향상을 하기 위한 아이디어를 제시하고자 하며, 그 방법으로 한국어 어휘 의미망 [1]을 이용해서 문맥의존 철자오류 교정에서의 문맥이 해도를 높이고자 한다. 한국어 어휘 의미망은 미국프린스톤 대학교의 인지심리학자 밀러(George A. Miller)와 동료에 의해 개발된 인간 언어를 대상으로 구축한 최소 어휘 의미망인 영어 워드넷(WordNet, PWN)을 부산대학교에서 대치 및 추가 구축한 것이다. 한국어 어휘 의미망은 명사, 동사, 형용사, 부사, 수분류사로 구성되어 있으며, 본 논문에서는 Table 1을 참고로 한국어 어휘 의미망에서 가장 큰 비중을 갖는 품사인 명사를 대상으로 그래프 임베딩 학습 (embedding learning)을 하고 성능 향상의 가능성을 실험한다. 참고로 Table1의 한국어 어휘 의미망 구축량은 현재에도 추가 구축 중이며, 지식 그래프 임 베딩을 위해 확보된 데이터의 수치이다.

Table 1. Number of Korean WordNet by Part of Speech.

임베딩 학습은 말뭉치를 이용해 비감독 학습 (unsupervisedlearning)을 하여 문장을 학습하고 다차원 공간에 분산하여 표현하므로 단어의 분산표현 (distributedrepresentation)이라 말한다. 지식 그래프를 임베딩 학습하기 위해서는 그래프를 임베딩 학습에 맞게 전처리해야 하며, 지식 그래프의 임 베딩학습 후 벡터 정보를 기존 문맥의존 철자오류 교정에서 사용하는 언어모형의 단어 벡터 정보에 연결함으로써 교정 성능이 향상됨을 보여주고자 한다. 한국어 어휘 의미망의 학습을 위한 전처리는 그래프 임베딩 기술 중 하나인 딥워크(DeepWalk)[4]각 노드를 순회하면서 샘플링(sampling)하는 랜덤워크(random walk)를 사용한다. 본 논문에서는 문맥의존 철자오류 교정 성능의 향상을 측정하기 위해서 혼동 어휘 5쌍을 사용하며, 문맥의존 철자오류 교정을 위한 언어모형의 임베딩 학습은 다양한 분야를 대상으로 하는 신문기사를 사용하였고 교정 성능 테스트 문서는 전문가에 의해서 교열 후 구축된 세종말뭉치[5]에서 혼동 쌍 단어를 포함한 문맥을 추출하여 구축하였다. 참고로 교정 테스트 문서는 각 혼동 쌍의 단어에 대해서 50:50의 올바른 문장과 틀린 문장을 포함하고 있다.

논문의 구성은 다음과 같다. 2장에서는 관련 연구에 관해서 이야기하고 3장에서는 문맥의존 철자오류교정에 대해서 설명한다. 4장에서는 지식 그래프 임 베딩에 관해서 설명하고 5장에서는 실험과 결과를 분석하며, 마지막으로 6장에서는 결론 및 향후 연구에 관해서 말한다.

2. 관련 연구

초기 자연어처리(natural language processing) 딥러닝의 연구는 언어모형의 모델링을 최대한 잘해서 성능을 올리는 데 집중을 하였다.이후 많은 연구가 진행되면서 모델링만으론 한계점이 분명하다는게 증명되었으며, 이를 극복하기 위해서 인간의 지식을 수작업으로 구축한 다양한 자원을 활용하여 성능을 높이는 연구들이 진행되었다. 그중 개체 간의 관계를 잘 나타내는 그래프 기반의 딥러닝 연구를 본 논문에서는 다룬다. 가장 기본적인 연구로는 딥워크 [4]가 있으며, 그래프의 노드를 순회하면서 방문 노드를 나열하여 샘플링하고 입력 후 임베딩 학습을 한다.그래프 계층을 따로 구분하지 않고 가까운 노드만을 찾기 때문에 의미적 거리만을 파악할 수 있다. 다음으로 Node2Vec[6]이라는 그래프 임베딩 연구가 있으며, 딥워크에서 다루는 노드 사이에 파라미터(parameter)를 두어 더 넓은 영역의 노드를 순회하도록 하거나 가까운 주변 노드를 더 잘 탐색하게 조정 할 수 있다. SDNE(Structural Deep Network Embedding)[7]으로 파라미터를 공유하는 2개의 인코더(encoder)를 두어 2개의 임베딩 벡터값을 비교하여 임베딩 벡터값이 비슷하면 노드들끼리 거리를 좁혀지게 학습한다.GCN(Graph convolutional net-works)[8]은 그래프의 전체 이웃을 상대로 계산하기 때문에 계산 효율성이 떨어져 이를 높이기 위해 반복적으로 이웃한 노드들의 집합 정보를 모은다. 이웃한노드의 정보를 학습하면서 넓은 이웃들의 정보를 임 베딩 할 수 있게 된다. Graph2Vec[9]는 이전의 그래프 학습과 다르게 그래프 전체를 하나의 벡터로 변환하여 표현하며, Doc2Vec의 학습 아이디어를 바탕으로 한다. 그래프의 아이디를 입력으로 받고 그래프에 포함된 정보를 예측하기 위한 학습을 한다. 그 외에도 다양한 그래프 임베딩 연구가 진행되고 있으며, 성능은 적용 분야에 따라서 성능의 차이가 존재했다.

본 논문에서는 지식 그래프 학습 모델링의 성능보다는 지식 그래프를 임베딩 학습하여 문맥의존 철자오류 교정에 추가 정보로 사용하였을 때에 대한 성능향상을 검증해보고자 한다.

3. 문맥의존 철자오류 교정

한국어 어휘 의미망의 지식 그래프 임베딩 정보를 이용한 문맥의존 철자오류 교정은 Fig.1의 왼쪽 순서도와 같이 교정 문맥을 입력하고 문맥 단어를 순회하며 오류 단어를 찾는다. 오류 단어라고 예상되는 단어에 대해서 교정 후보어를 생성한다. 그리고 교정후보어와 문맥정보 간의 벡터 거리나 공기 확률값을 비교하여 최종 교정어를 후보어 중에서 선택한다. 참고로 교정 대상 단어가 주변 문맥과의 벡터 거리나 공기 확률값이 다른 후보어에 비해서 높다면 교정은 이루어지지 않는다. 본 논문에서는 광범위한 오류어 대상이 아닌 어휘 쌍을 이용하여 교정 실험을 진행하며, 어휘 중의성 해소의 관점에서 혼동되는 두 단어를 구별하게 하여 교정 성능을 측정한다. 수식 1을 참고로 언어모형(문맥의존 철자오류 교정에 사용되는 임베딩 정보)에 입력되는 문장 w1:n과 교정 후보어 집합을 라고 하고 문맥의존 철자오류 교정 코사인 거리값이 dsi(w1,w2,…,C,wn-1,wn) 최대가 되는 \(\hat{C}\)를 선택하게 된다. 참고로 교정 후보어 집합을 C는 광범위한 오류어를 대상으로 한다면 후보어 수가 다양하지만, 어휘 쌍 교정에서는 2개이다.

\(\hat{C}=\underset{C}{\operatorname{argmax}} \operatorname{dis}\left(w_{1}, w_{2}, \ldots, C, \ldots, w_{n-1}, w_{n}\right)\)       (1)

Fig. 1. Context-sensitive spelling error correction ex-ample and experiment.

다음으로 수식 2는 수식 1에서 입력된 주변 문맥단어와 교정 후보어(∈C)의 벡터 거리값의 합을 구한다. t는 교정후보어의 위치이고 wt는 교정후보어이며, j는 주변 문맥의 위치이고 wj는 주변 문맥 단어이다. win은 교정후보단어의 참조하는 주변 문맥의 범위이며, cos는 교정후보단어와 문맥단어간의 벡터 거리 값을 구하는 함수다. concat은 벡터를 결합하는 함수로써 일반 말뭉치로 학습된 임베딩 언어모형의 벡터와 그래프 정보를 학습시킨 언어모형의 벡터를 연결한다.

\(\begin{aligned} &\operatorname{dis}\left(w_{1}, w_{2}, \ldots, C, \ldots, w_{n-1}, w_{n}\right)= \\ &\sum_{\substack{j=t-w i n \\ j \neq 0 \\ t=0}}^{t+w i n} \cos \left(\operatorname{concat}\left(w_{t}, w_{\text {graph }}\right) \mid \operatorname{concat}\left(w_{j}, w_{\text {graph }}\right)\right) \end{aligned}\)       (2)

4. 지식 그래프 임베딩

딥러닝(deep learning)에서는 숫자 정보를 이용해서 계산할 수 있으며, 어떤 형태의 데이터라도 숫자로 전처리하여 표현이 가능하다면 딥러닝에 적용을 할 수 있다. 그래프는 다양한 분야에서 사용되고 있으며, 구축 목표에 따라서 원하는 정보를 잘 표현하고 있다. 본 논문에서 사용하는 한국어 어휘 의미망은 한국인이 사용하는 전체 단어를 대상으로 단어 간의 관계를 정의하고 있으며, Fig.2와 같이 한국어 단어 간의 관계를 그래프로 표현하고 있다. 그래프를 임 베딩 하기 위해서는 그래프의 특징을 어떻게 표현할지 결정하고 그 특징을 학습에 잘 반영하여야 한다.

Fig. 2. Korean WordNet (alias. KorLex).

4.1 지식 그래프 임베딩 학습

본 논문에서는 그래프 임베딩 기술 중 하나인 딥워크(DeepWalk) [4]를 이용해서 한국어 어휘 의미망을 학습한다. 딥워크는 Word2Vec[10]의 skip-gram 을 이용해서 단어의 의미를 다차원 공간에 벡터로 표현하며, 이를 임베딩 벡터라고 말하고 논문에서는 지식 그래프를 학습하기 때문에 지식 그래프 임 베딩 벡터라고 표현한다. Word2Vec은 문자열을 입력으로 학습을 하며, skip-gram을 통해 중심 단어를 단서로 주변 단어를 예측하는 방식으로 학습한다. 한국어어휘 의미망을 임베딩 학습하기 위해서 먼저 문자열과 같은 형태로 변환을 해야 하는데 딥 워크에 서는 랜덤워크라는 방식을 사용하여 샘플링한다. Fig.3을 예로 그래프를 Word2Vec의 입력과 같은 문장 형태로 샘플링하게 되며, 시작 위치의 노드를 중심으로 노드와 연결된 그래프를 정해진 길이의 워크만큼 순회하면서 데이터를 구성하게 된다.이렇게 구성된 데이터는 그래프에서 가까운 노드들을 문장의 형태로 내포한다.본 논문에서는 명사의 그래프 정보를 이용해 그래프 임베딩 학습을 하며, 한국어 어휘 의미망에서 명사는 동사와 함께 계층구조(hierarchy)를 갖는다. 랜덤워크는 한국어 어휘 의미망의 시작 노드를 기준으로 형제, 자식, 부모 노드를 순회하게 된다. 랜덤워크로 샘플링된 데이터를 이용해 Word2Vec을 통해 그래프를 임베딩 학습한다.

Fig. 3 RandomWalk sampling.

임베딩 학습은 한국어 어휘 의미망의 113, 082개의 명사를 대상으로 하며, 128차원으로 학습을 하였다. Fig.4을 참고로 학습된 지식 그래프 임베딩이며, 그래프상에서 가까운 단어끼리 군집 된 예를 볼 수 있다. 일반적인 임베딩 학습에서는 말뭉치를 이용해서 작성된 문서의 문맥에서 갖는 여러 상황을 고려해서 단어들이 가깝게 배치되기 때문에 문서의 성향에 따라서 단어의 의미 거리가 달라지지만, 지식 그래프임 베딩에서는 일반적으로 사람이 생각하는 어휘 심상을 반영하였기 때문에 연관 단어 간의 더욱 강력하게 연관성을 표현한다.

Fig. 4. 2D visualization of knowledge graph embeddings.

4.2 문맥의존 철자오류 교정에서의 지식 그래프 임베딩 벡터 적용

문맥의존 철자오류 교정에서 한국어 어휘 의미망의 지식 그래프 임베딩 벡터 정보를 적용은 문맥 의존철자오류 교정을 위한 임베딩 언어모형과 지식 그래프 임베딩을 각각 학습하여 각 모형에서 최종 출력되는 단어의 벡터를 결합하여 사용한다. 이런 방식 의사용 예로 Fig. 5의 선형회귀 언어모형(regressive language model)의 양방향 벡터값을 결합[11]해서 사용하는 방식과 같다.선형회귀 언어모형에서는 단방향(forward)인 문장의 단어를 차례로 예측 학습하기 때문에 예측 단어의 좌문맥(leftsentence)의 정보만을 언어모형이 갖게 된다. 이런 점 때문에 우문맥 (right sentence)의 정보를 포함한 역방향(back- ward)학습된 언어모형을 따로 두어 문맥에서 원하는 단어 wt의 벡터 정보를 얻을 때 단어의 좌 문맥 정보를 포함한 벡터와 우문맥 정보를 포함한 벡터를 결합(concatenate)하여 단어의 최종 벡터를 구성한다. 이렇게 구성된 벡터는 단방향으로 학습된 벡터에 비해서 문맥의 양방향 정보를 갖기 때문에 단어의 주변 문맥의 이해도가 높아지게 된다.이와 같은 방식으로 언어모형에서 얻어진 벡터를 잘 결합해서 사용하면 이점을 갖게 된다.

Fig. 5. Example of concatenate word vectors.

본 논문에서는 서로 다른 정보를 갖는 언어모형에서 얻어진 벡터를 결합하여 문맥의존 철자오류 교정에 사용하려고 하며, 문맥의존 철자오류 교정을 위한 비감독 임베딩 학습된 언어모형과 한국어 어휘 의미망을 학습한 그래프 임베딩을 사용한다. Fig.6을 참고로 단순 문맥의존 철자오류 교정에서는 지식 그래프 임베딩 정보를 사용하지 않으며, 교정 중심 단어 (w2)와 주변 문맥(w1,w3,…,wr)을 입력하고 임 베딩 학습된 언어모형을 이용해 단어 벡터를 구성한다. 마지막으로 교정 중심 단어와 주변 문맥 단어 간의 의미적 거리인 코사인 거리를 측정한다. Fig.7은 논문에서 제안하는 한국어 어휘 의미망의 지식 그래프임 베딩 정보를 결합하는 방법이다.처음에는 교정 중심 단어와 주변 문맥을 입력하며, 다음으로 문맥에서 중의 단어를 분류해야 한다.분류이유는 예 “눈”이라는 단어가 문맥에 있을 때 의미가 사람의 “눈”인지 내리는 “눈”인지 구분을 해주어야 하기 때문이며, 구분되어야 이후에 결합하는 지식 그래프 임베딩 벡터를 찾을 수 있다. 참고로 한국 어휘 의미망은 표준국어대사전[12]의 단어 의미 번호 분류를 사용하며, 중의 단어 분류기는 동일하게 표준국어대사전의 단어 의미 번호를 사용하는 ETRI언어 분석 오픈 API[13] 를 사용하였다. 학습 말뭉치와 교정 입력 문장은 Fig. 8에서와 같이 형태소 분석 후 의미 번호를 부착하여 사용한다.

Fig. 6. (a) Flowchart of vector construction of context words in simple context-sensitive spelling error correction, and (b) Vector construction flowchart of context word in context-sensitive spelling error correction reflecting Knowledge Graph Embedding.

다음으로는 Fig.6의 예와 같이 언어모형을 통해 문맥 각 단어의 벡터를 얻어 구성하며, 동일한 문맥 각 단어에 대해서 지식 그래프가 임베딩 된 언어모형을 통해 벡터를 구성하여 두 언어모형에서 얻어진 동일 단어에 대한 두 벡터를 결합한다. 마지막으로결합 된 문맥 단어 벡터를 이용해 교정 중심 단어와 주변 문맥 단어 간의 의미적 거리인 코사인 거리를 측정한다. Fig.7에서의 지식 그래프 임베딩 벡터의 적용은 수식 2에서 concat함수를 통해 대상 단어의 표현 벡터와 대상 단어의 지식 그래프 임베딩을 결합하고 cos함수를 통해 단어 간의 코사인 거리를 측정한다. 최종적으로 교정 대상 단어 wt와 주변 문맥 단어 wj의 의미 거리인 코사인 거리를 측정하여 전체문맥 단어와의 거리 합을 수식 1의 argmax 함수를 통해 비교하여 최종 교정 단어를 결정한다.

Fig. 7. Example of morphological analysis and semantic number attachment.

5. 실험 및 평가

5.1 실험 환경

본 논문에서의 문맥의존 철자오류 교정 실험은 문맥 의존 철자오류 교정에 사용되는 임베딩 학습된 언어모형과 한국어 어휘 의미망의 지식 그래프 임 베딩 된 언어모형을 사용한다. 문맥의존 철자오류 교정에 사용되는 언어모형은 약 1,900만의 단어 사전을 갖는 약 14억 토큰의 신문기사에서 각 어휘 쌍의 단어를 포함한 문장을 추출하여 학습하였다.문맥의존 철자오류 교정 테스트 말뭉치는 세종말뭉치를 사용하였으며, Table 2와 같이 5개 쌍의 단어를 선정했다. 단어의 선택에 있어서 기준은 서로 오타가 발생할 수 있는 편집거리가 1인 출현 빈도가 높은 명사, 주변 문맥의 중복률이 낮은 단어를 대상으로 하였다. 명사를대상으로 한 이유는 용언보다 명사가 통계적인 실험에서 결과가 좋지 않게 나오기 때문이며, 편집거리를 1로 한 이유는 기초연구로 시작하였기 때문이다. Table 2의 중복률과 빈도는 세종말뭉치에서 얻은 정보이다. 어휘 쌍 간에 비슷한 빈도로 나타나며, 주변 문맥과 공기하는 중복률이 비슷한 단어를 택하였다.

Table 2. Correction word pair.

Table 3. Confused word pair correction experiment.

5.2 실험 결과 및 분석

실험에서는 혼동 단어 쌍을 50:50으로 섞어 교정하며, 각각의 단어와 주변 문맥과의 관계를 얼마나 잘 파악하여 문맥의존 철자오류 교정을 했는지를 본다. 전체 10단어 중 7단어가 F1점수 기준으로 지식 그래프 정보를 사용하였을 때 성능이 향상되는 것을 볼 수 있었으며, 3단어가 성능이 낮아졌다. 성능이낮아진 단어 중 2단어는 미묘하게 낮아졌으며, 나머지 단어인 “지식”에 대해서 성능이 약 5%정도 낮아졌다. 지식 그래프 임베딩을 사용하지 않은 성능이 낮을수록 성능 향상의 폭이 높았으며, 이미 99%에 가까운 성능일 경우에 미묘하게 떨어지기도 하였다. 혼동 단어 쌍을 기준으로 본다면 두 단어가 같이 성능이 올라가는 게 가장 이상적이며, 한 단어가 큰 변동이 없으나 다른 단어가 상승하였다면 괜찮은 결과라고 판단한다. 실험에서 같이 성능이 상승 한 단어 쌍은 “기본/기분”, “사장/사정”이며, 한 단어가 큰 변동이 없으나 다른 단어가 상승이 있는 경우는 “의자/ 의지”, “주의/주위”가 있었다. 다음으로 지식 그래프임 베딩 정보를 사용하므로 오히려 안 좋아지는 경우는 성능이 동반 하락하거나 한 단어의 성능은 미묘하게 차이가 없으나 나머지 단어가 크게 하락하는 경우인데 “자식/지식”이 이에 해당한다. 실험의 전체 F1 의 평균은 지식 그래프 임베딩를 사용하지 않았을 때 비해서 2.24% 정도 성능 향상을 보여주었다.

6. 결론 및 향후 연구

본 논문에서의 실험을 통해 한국어 어휘 의미망의 지식 그래프 임베딩 정보를 이용해 문맥의존 철자오류 교정의 성능에 향상의 가능성을 확인하였다. 향후연구에서는 지식 그래프 임베딩 연구를 기준으로 두 가지 접근이 필요하다. 지식 그래프 임베딩 모델링을 하여 학습 모형 성능을 높이는 것과 지식 그래프 임 베딩 학습에 명사만을 사용하여 학습을 진행하였는데 향후 실험에서는 명사뿐만 아니라 동사, 형용사, 부사, 수분류사에 대해서 확장하여 학습해볼 필요가 있다. 그리고 교정 연구를 기준으로 광범위한 문맥에서 나타나는 철자 오류를 교정하는 연구[14]도 추가적으로 실험할 필요가 있다.

References

  1. A. Yoon, S. Hwang, E. Lee, and H.-C. Kwon, "Construction of Korean Wordnet 「KorLex 1.5」," Journal of KI ISE : Software and Applications, Vol. 36, No. 1, pp. 92-108, 2009.
  2. J.-H. Lee, M. Kim, and H.-C. Kwon, "Comparison of Context-Sensitive Spelling Error Correction using Embedding Techniques," Journal of KIISE, Vol. 47, No. 2, pp. 147-154, 2020. https://doi.org/10.5626/jok.2020.47.2.147
  3. G.A. Miller, "WordNet: a Lexical Database for English," Communications of the ACM, Vol. 38, Issue 11, pp. 39-41, 1995. https://doi.org/10.1145/219717.219748
  4. B. Perozzi, R. Al-Rfou, and S. Skiena, "Deep Walk: Online Learning of Social Representations," Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 701-710, 2014.
  5. Y. Hwang and J. Choi, "A Good Look at the 21st Century Sejong Corpus," New Korean Language Life, Seoul. 2009.
  6. A. Grover and J. Leskovec, "node2vec: Scalable Feature Learning for Networks," Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data, pp. 855-864, 2016.
  7. D. Wang, P. Cui, and W. Zhu, "Structural Deep Network Embedding," Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data, pp. 1225-1234, 2016.
  8. H. Pei, B. Wei, K. Chang, Y. Lei, and B. Yang, "Geom-GCN: Geometric Graph Convolutional Networks," arXiv Preprint, arXiv:2002.05287, 2020.
  9. A. Narayanan, M. Chandramohan, and R. Venkatesan, "graph2vec: Learning Distri-buted Representations of Graphs," arXiv Preprint, arXiv:1707.05005, 2017.
  10. T. Mikolov, K. Chen, G. Corrado, and J. Dean. "Efficient Estimation of Word Representations in Vector Space," arXiv Preprint, arXiv: 1301. 3781, 2013.
  11. M.E. Peters, M. Neumann, M. Iyyer, M. Gardner, C. Clark, K. Lee, et al., "Deep Contextualized Word Representations," arXiv Preprint, arXiv:1802.05365, 2018.
  12. National Institute of the Korean Language Standard Korean Dictionary, https://stdict.korean.go.kr/main/main.do (accessed November 10, 2021).
  13. ETRI AI Open API service, https://aiopen.etri.re.kr/service_api.php (accessed November 10, 2021).
  14. J.-H. Lee, M. Kim, and H.-C. Kwon, "Improved Statistical Language Model for Context-Sensitive Spelling Error Candidates," Journal of Korea Multimedia Society, Vol. 20, No. 2, pp. 371-381, 2017. https://doi.org/10.9717/KMMS.2017.20.2.371