SlideShare a Scribd company logo
1 of 8
Download to read offline
project #6



   오탈자 검사


              C0



             김영진
             강성태
             정준용
             허규준
             김지환
순서




•조원별 업무분담



   •일정 계획



   •문제 파악



     •Heap
1)조원별 업무 분담

김영진           자료 조사 및 알고리즘 구성



강성태           자료 조사 및 알고리즘 구성



정준용           소스 작성 및 보고서 작성



허규준           알고리즘 구성 및 소스 작성



김지환           자료 조사 및 보고서 작성




2)일정계획
              과제에 대한 자료 조사 및 업무분담
06.12~06.14
              일정 계획


06.14~06.21   자료, 알고리즘 조사 및 소스 작성
3)문제파악


。 영어 텍스트 파일을 읽어서 사전을 검색하여 철자
를 검색하는 프로그램을 작성한다.



。 철자를 검색하여 틀린 글자가 나오면 표시하고 가
장 적절한 단어를 추천한다.



。 가장 적절한 단어를 찾기 위해서는 Edit distance를
사용하면 된다. 물론 다른 방법도 있다.



。 사용 가능한 사전
4)Heap

heap은 완전 이진 트리의 하나로서 각각의 노드는
유일한 키 값을 가진다.
heap은 여러개의 노드들 가운데서 가장 큰 키 값을
가지는 노드나 가장 작은 키 값을 가지는 노드를 빠른
시간내에 찾아내도록 만들어진 자료 구조이다.
heap의 종류로는 max heap, min heap, min‐max
heap가 있다.


。 max heap의 정의


max heap은 완전 이진 트리이며 heap의 한 노드는
그 노드의 모든 자손 노드들보다 큰 키 값을 가진다.
max heap의 루트에는 항상 가장 큰 키 값을 가지는
노드가 위치하므로 우선순위 큐(priority queue)를 구성
하는데 적합한 자료 구조이다.
< max heap의 예>
。 max heap에 임의의 키 값을 가지는 노드를 삽입


max heap은 완전 이진 트리이므로 새로운 노드는 완
전 이진 트리의 마지막 노드 다음 위치에 삽입된다.
삽입된 노드와 그 부모 노드의 키 값을 비교한다. 삽
입된 노드의 키 값이 부모 노드의 키 값보다 크면 두
노드의 위치를 바꾼다.
삽입된 노드의 키 값이 자신의 부모 노드 키 값보다
작아질 때까지 2단계를 반복한다.


。 max heap에서 가장 큰 키 값을 가지는 노드를 삭제


max heap의 루트에는 가장 큰 키 값을 가지는 노드
가 들어있으므로 루트 노드를 삭제한다.
빈 루트 노드 자리에는 완전 이진 트리의 마지막 노드
를 삽입한다.
삽입된 노드와 그 자식 노드의 키 값을 비교한다. 삽
입된 노드의 키 값이 자식 노드의 키 값보다 작으면
두 노드의 위치를 바꾼다.
삽입된 노드의 키 값이 자신의 자식 노드 키 값보다
커질 때까지 3단계를 반복한다.
。 min heap의 정의


min heap은 완전 이진 트리이며 heap의 한 노드는
그 노드의 모든 후손 노드들보다 작은 키 값을 가진
다.
。 min‐max heap의 정의


min‐max heap은 완전 이진 트리이며 min 레벨과
max 레벨이 차례로 반복된다.
루트는 min 레벨로 시작한다.
min 레벨의 노드는 그 노드의 모든 후손들보다 작은
키 값을 가진다.
max 레벨의 노드는 그 노드의 모든 후손들보다 큰
키 값을 가진다.
min heap이나 max heap은 가장 작은 키 값을 가지
는 노드는 가장 큰 키 값을 가지는 노드만을 찾기에
적합하도록 되어있지만 min‐max heap은 두가지 노드
를 모두 찾기에 적합한 자료 구조이다.

More Related Content

Similar to 자료구조06

프로젝트#6 (오탈자 검사)보고서
프로젝트#6 (오탈자 검사)보고서프로젝트#6 (오탈자 검사)보고서
프로젝트#6 (오탈자 검사)보고서mil23
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7KoChungWook
 
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingNews clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingJunyoung Park
 
자료구조 Project4
자료구조 Project4자료구조 Project4
자료구조 Project4KoChungWook
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)Adonis Han
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.Adonis Han
 
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기Han-seok Jo
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
2012 Ds A1 06
2012 Ds A1 062012 Ds A1 06
2012 Ds A1 06seonhyung
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 HwpKimjeongmoo
 
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”
데이터분석의 길 3   “r 워크플로우 (스토리텔링)”데이터분석의 길 3   “r 워크플로우 (스토리텔링)”
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”Jaimie Kwon (권재명)
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Taekyung Han
 
Active learning literature survey
Active learning  literature surveyActive learning  literature survey
Active learning literature surveyhyunsikkim30
 
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Taekyung Han
 

Similar to 자료구조06 (20)

프로젝트#6 (오탈자 검사)보고서
프로젝트#6 (오탈자 검사)보고서프로젝트#6 (오탈자 검사)보고서
프로젝트#6 (오탈자 검사)보고서
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7
 
DS_04
DS_04DS_04
DS_04
 
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingNews clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word Embedding
 
자료구조 Project4
자료구조 Project4자료구조 Project4
자료구조 Project4
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
 
Mahout
MahoutMahout
Mahout
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
 
파이썬과 자연어 3 | 문장구조
파이썬과 자연어 3 | 문장구조파이썬과 자연어 3 | 문장구조
파이썬과 자연어 3 | 문장구조
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
2012 Ds A1 06
2012 Ds A1 062012 Ds A1 06
2012 Ds A1 06
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 Hwp
 
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”
데이터분석의 길 3   “r 워크플로우 (스토리텔링)”데이터분석의 길 3   “r 워크플로우 (스토리텔링)”
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”
 
2012 Ds 06
2012 Ds 062012 Ds 06
2012 Ds 06
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
 
Active learning literature survey
Active learning  literature surveyActive learning  literature survey
Active learning literature survey
 
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
 

More from herojoon1378

More from herojoon1378 (10)

자료구조05
자료구조05자료구조05
자료구조05
 
자료구조04
자료구조04자료구조04
자료구조04
 
자료구조02
자료구조02자료구조02
자료구조02
 
자료구조01
자료구조01자료구조01
자료구조01
 
Mst 구하기
Mst 구하기Mst 구하기
Mst 구하기
 
7그룹 코드
7그룹 코드7그룹 코드
7그룹 코드
 
6비트덧셈기
6비트덧셈기6비트덧셈기
6비트덧셈기
 
5통신망에서 길 찾기
5통신망에서 길 찾기5통신망에서 길 찾기
5통신망에서 길 찾기
 
3콤비네이션
3콤비네이션3콤비네이션
3콤비네이션
 
2데이터베이스 시스템
2데이터베이스 시스템2데이터베이스 시스템
2데이터베이스 시스템
 

자료구조06

  • 1. project #6 오탈자 검사 C0 김영진 강성태 정준용 허규준 김지환
  • 2. 순서 •조원별 업무분담 •일정 계획 •문제 파악 •Heap
  • 3. 1)조원별 업무 분담 김영진 자료 조사 및 알고리즘 구성 강성태 자료 조사 및 알고리즘 구성 정준용 소스 작성 및 보고서 작성 허규준 알고리즘 구성 및 소스 작성 김지환 자료 조사 및 보고서 작성 2)일정계획 과제에 대한 자료 조사 및 업무분담 06.12~06.14 일정 계획 06.14~06.21 자료, 알고리즘 조사 및 소스 작성
  • 4. 3)문제파악 。 영어 텍스트 파일을 읽어서 사전을 검색하여 철자 를 검색하는 프로그램을 작성한다. 。 철자를 검색하여 틀린 글자가 나오면 표시하고 가 장 적절한 단어를 추천한다. 。 가장 적절한 단어를 찾기 위해서는 Edit distance를 사용하면 된다. 물론 다른 방법도 있다. 。 사용 가능한 사전
  • 5. 4)Heap heap은 완전 이진 트리의 하나로서 각각의 노드는 유일한 키 값을 가진다. heap은 여러개의 노드들 가운데서 가장 큰 키 값을 가지는 노드나 가장 작은 키 값을 가지는 노드를 빠른 시간내에 찾아내도록 만들어진 자료 구조이다. heap의 종류로는 max heap, min heap, min‐max heap가 있다. 。 max heap의 정의 max heap은 완전 이진 트리이며 heap의 한 노드는 그 노드의 모든 자손 노드들보다 큰 키 값을 가진다. max heap의 루트에는 항상 가장 큰 키 값을 가지는 노드가 위치하므로 우선순위 큐(priority queue)를 구성 하는데 적합한 자료 구조이다. < max heap의 예>
  • 6. 。 max heap에 임의의 키 값을 가지는 노드를 삽입 max heap은 완전 이진 트리이므로 새로운 노드는 완 전 이진 트리의 마지막 노드 다음 위치에 삽입된다. 삽입된 노드와 그 부모 노드의 키 값을 비교한다. 삽 입된 노드의 키 값이 부모 노드의 키 값보다 크면 두 노드의 위치를 바꾼다. 삽입된 노드의 키 값이 자신의 부모 노드 키 값보다 작아질 때까지 2단계를 반복한다. 。 max heap에서 가장 큰 키 값을 가지는 노드를 삭제 max heap의 루트에는 가장 큰 키 값을 가지는 노드 가 들어있으므로 루트 노드를 삭제한다. 빈 루트 노드 자리에는 완전 이진 트리의 마지막 노드 를 삽입한다. 삽입된 노드와 그 자식 노드의 키 값을 비교한다. 삽 입된 노드의 키 값이 자식 노드의 키 값보다 작으면 두 노드의 위치를 바꾼다. 삽입된 노드의 키 값이 자신의 자식 노드 키 값보다 커질 때까지 3단계를 반복한다.
  • 7. 。 min heap의 정의 min heap은 완전 이진 트리이며 heap의 한 노드는 그 노드의 모든 후손 노드들보다 작은 키 값을 가진 다.
  • 8. 。 min‐max heap의 정의 min‐max heap은 완전 이진 트리이며 min 레벨과 max 레벨이 차례로 반복된다. 루트는 min 레벨로 시작한다. min 레벨의 노드는 그 노드의 모든 후손들보다 작은 키 값을 가진다. max 레벨의 노드는 그 노드의 모든 후손들보다 큰 키 값을 가진다. min heap이나 max heap은 가장 작은 키 값을 가지 는 노드는 가장 큰 키 값을 가지는 노드만을 찾기에 적합하도록 되어있지만 min‐max heap은 두가지 노드 를 모두 찾기에 적합한 자료 구조이다.