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파일이다. (파일명은 줄바꿈으로 구분) [파일의 내용] src\news01.html src\news02.html src\news10.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를 밝힐 것. 정상참작)

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

Embed Size (px)

Citation preview

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

과제 #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파일이다. (파일명은 줄바꿈으로 구분)

[파일의 내용]

src\news01.html src\news02.html … src\news10.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를 밝힐 것. 정상참작)