SlideShare a Scribd company logo
과제 #2) 색인어 생성기 만들기

색인어 생성기는 아래의 동작을 해야 한다. (단, 입력 데이터는 html 문서임)
  1) 입력된 문서에서 <body>~</body> Tag 내에 존재하는 데이터를 plain text로 변환한다.
       (모든 tag를 삭제한다.)
  2) 1)의 결과를 이용하여 token을 구분하고 불용어(stop words)를 제거한다.
       이 때, 불용어 목록은 직접 정하여, 적용한다.
  3) 2)의 결과를 이용하여 Porter stemming algorithm을 적용한 색인어 목록을 출력한다.


<프로그램의 동작 및 출력물>
  1) 프로그램은 콘솔에서 동작하며 아래의 명령어 형식으로 작동한다.
       $ makeindex.exe {입력파일명}
       ex) $ makeindex.exe input.txt
  2) 입력은 하나 혹은 다수의 파일명이 적힌 text파일이다. (파일명은 줄바꿈으로 구분)
       [파일의 내용]
       srcnews01.html
       srcnews02.html
       …
       srcnews10.html
  3) ./doc 폴더에 뉴스 기사만 plain text 형태로 저장된 *.txt 파일을 저장한다.
       하나의 html 파일은 같은 이름의 text 파일 하나로 저장되어야 한다.
       ex) 입력: news01.html      출력: news02.txt
  4) ./words 폴더에 최종 색인어가 포함된 index_words.txt 파일을 저장한다.
       색인어는 중복되지 않아야 하며, 모든 색인은 index_words.txt 파일 하나에 통합한다.


<제출내용>
  ① 프로그램 소스 코드 (C/C++, 컴파일이 가능한 형태)
  ② 코딩에 사용한 불용어(stop words) 목록과 해당 불용어를 선택한 간략한 이유(*.doc 파일)


<참고>
* C/C++를 이용하여 구현할 것 (STL 이외의 타인이 구현한 library 사용하지 말 것)
* 입력 데이터는 http://www.nytimes.com에서 수집한 뉴스 기사를 사용한다.
* <body>~</body> 태그 내에는 뉴스 기사뿐 아니라 메뉴 등의 텍스트가 포함되어 있어 색인어
로 적합하지 않은 단어들이 있다. 뉴스 본문만 읽어오도록 프로그램을 작성하라. (선택사항)
* 컴파일 되지 않는 소스는 채점에서 제외될 수 있음
* 다른 사람과 유사한 코드가 발견되면 감점 혹은 수업시간에 자신의 코드를 설명하도록 하고 그
결과를 점수에 반영함. (참조하여 작성한 경우 해당 reference를 밝힐 것. 정상참작)

More Related Content

Similar to 과제#2 색인어 생성기 만들기

처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차
Michael Yang
 
Html5_SYS4U
Html5_SYS4UHtml5_SYS4U
Html5_SYS4Usys4u
 
Release note 1.2
Release note 1.2Release note 1.2
Release note 1.2
Jaewon Lee
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
jylee6977
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
흥배 최
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법Daniel Kim
 
Kotlin 테스트 코드 결함 Intellij 플러그인 개발기.docx
Kotlin 테스트 코드 결함 Intellij 플러그인 개발기.docxKotlin 테스트 코드 결함 Intellij 플러그인 개발기.docx
Kotlin 테스트 코드 결함 Intellij 플러그인 개발기.docx
ridex92
 
Bug sense 분석
Bug sense 분석Bug sense 분석
Bug sense 분석
logdog
 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Hyuncheol Jeon
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정
abapier
 
chatbot-seminar-1806
chatbot-seminar-1806chatbot-seminar-1806
chatbot-seminar-1806
juneyoungdev
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 
Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...
Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...
Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...
Byunghyun Ban
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
Yong Joon Moon
 
GMS 프로젝트 - Flutter
GMS 프로젝트 - FlutterGMS 프로젝트 - Flutter
GMS 프로젝트 - Flutter
Jongmini
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
jaypi Ko
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
jaypi Ko
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해
Leehooan
 
[Week12] D3.js_Basic2
[Week12] D3.js_Basic2[Week12] D3.js_Basic2
[Week12] D3.js_Basic2
neuroassociates
 

Similar to 과제#2 색인어 생성기 만들기 (19)

처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 2일차
 
Html5_SYS4U
Html5_SYS4UHtml5_SYS4U
Html5_SYS4U
 
Release note 1.2
Release note 1.2Release note 1.2
Release note 1.2
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법
 
Kotlin 테스트 코드 결함 Intellij 플러그인 개발기.docx
Kotlin 테스트 코드 결함 Intellij 플러그인 개발기.docxKotlin 테스트 코드 결함 Intellij 플러그인 개발기.docx
Kotlin 테스트 코드 결함 Intellij 플러그인 개발기.docx
 
Bug sense 분석
Bug sense 분석Bug sense 분석
Bug sense 분석
 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정
 
chatbot-seminar-1806
chatbot-seminar-1806chatbot-seminar-1806
chatbot-seminar-1806
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...
Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...
Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
GMS 프로젝트 - Flutter
GMS 프로젝트 - FlutterGMS 프로젝트 - Flutter
GMS 프로젝트 - Flutter
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해
 
[Week12] D3.js_Basic2
[Week12] D3.js_Basic2[Week12] D3.js_Basic2
[Week12] D3.js_Basic2
 

More from Chang-yong Jung

NMEA0183 Parser 실습과제
NMEA0183 Parser 실습과제NMEA0183 Parser 실습과제
NMEA0183 Parser 실습과제
Chang-yong Jung
 
제5장 NMEA Parser 구현
제5장 NMEA Parser 구현제5장 NMEA Parser 구현
제5장 NMEA Parser 구현
Chang-yong Jung
 
제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183
제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183
제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183
Chang-yong Jung
 
제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비
Chang-yong Jung
 
제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급
Chang-yong Jung
 
제1장 강의소개 / 선박구조 및 기본개념
제1장 강의소개 / 선박구조 및 기본개념제1장 강의소개 / 선박구조 및 기본개념
제1장 강의소개 / 선박구조 및 기본개념
Chang-yong Jung
 
제7장 비불리언 모델
제7장 비불리언 모델제7장 비불리언 모델
제7장 비불리언 모델
Chang-yong Jung
 
제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일Chang-yong Jung
 
제1장 정보검색소개
제1장 정보검색소개제1장 정보검색소개
제1장 정보검색소개Chang-yong Jung
 

More from Chang-yong Jung (10)

NMEA0183 Parser 실습과제
NMEA0183 Parser 실습과제NMEA0183 Parser 실습과제
NMEA0183 Parser 실습과제
 
제5장 NMEA Parser 구현
제5장 NMEA Parser 구현제5장 NMEA Parser 구현
제5장 NMEA Parser 구현
 
제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183
제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183
제4장 선박용 장비의 통신규약 / 시리얼통신 / NMEA0183
 
제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비
 
제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급
 
제1장 강의소개 / 선박구조 및 기본개념
제1장 강의소개 / 선박구조 및 기본개념제1장 강의소개 / 선박구조 및 기본개념
제1장 강의소개 / 선박구조 및 기본개념
 
제7장 비불리언 모델
제7장 비불리언 모델제7장 비불리언 모델
제7장 비불리언 모델
 
제5장 사전파일
제5장 사전파일제5장 사전파일
제5장 사전파일
 
제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일
 
제1장 정보검색소개
제1장 정보검색소개제1장 정보검색소개
제1장 정보검색소개
 

과제#2 색인어 생성기 만들기

  • 1. 과제 #2) 색인어 생성기 만들기 색인어 생성기는 아래의 동작을 해야 한다. (단, 입력 데이터는 html 문서임) 1) 입력된 문서에서 <body>~</body> Tag 내에 존재하는 데이터를 plain text로 변환한다. (모든 tag를 삭제한다.) 2) 1)의 결과를 이용하여 token을 구분하고 불용어(stop words)를 제거한다. 이 때, 불용어 목록은 직접 정하여, 적용한다. 3) 2)의 결과를 이용하여 Porter stemming algorithm을 적용한 색인어 목록을 출력한다. <프로그램의 동작 및 출력물> 1) 프로그램은 콘솔에서 동작하며 아래의 명령어 형식으로 작동한다. $ makeindex.exe {입력파일명} ex) $ makeindex.exe input.txt 2) 입력은 하나 혹은 다수의 파일명이 적힌 text파일이다. (파일명은 줄바꿈으로 구분) [파일의 내용] srcnews01.html srcnews02.html … srcnews10.html 3) ./doc 폴더에 뉴스 기사만 plain text 형태로 저장된 *.txt 파일을 저장한다. 하나의 html 파일은 같은 이름의 text 파일 하나로 저장되어야 한다. ex) 입력: news01.html 출력: news02.txt 4) ./words 폴더에 최종 색인어가 포함된 index_words.txt 파일을 저장한다. 색인어는 중복되지 않아야 하며, 모든 색인은 index_words.txt 파일 하나에 통합한다. <제출내용> ① 프로그램 소스 코드 (C/C++, 컴파일이 가능한 형태) ② 코딩에 사용한 불용어(stop words) 목록과 해당 불용어를 선택한 간략한 이유(*.doc 파일) <참고> * C/C++를 이용하여 구현할 것 (STL 이외의 타인이 구현한 library 사용하지 말 것) * 입력 데이터는 http://www.nytimes.com에서 수집한 뉴스 기사를 사용한다. * <body>~</body> 태그 내에는 뉴스 기사뿐 아니라 메뉴 등의 텍스트가 포함되어 있어 색인어 로 적합하지 않은 단어들이 있다. 뉴스 본문만 읽어오도록 프로그램을 작성하라. (선택사항) * 컴파일 되지 않는 소스는 채점에서 제외될 수 있음 * 다른 사람과 유사한 코드가 발견되면 감점 혹은 수업시간에 자신의 코드를 설명하도록 하고 그 결과를 점수에 반영함. (참조하여 작성한 경우 해당 reference를 밝힐 것. 정상참작)