'mashup'에 해당되는 글 1건

  1. 2009.02.16 MashEnglish - 매쉬업 참가작.
ASP.NET2009.02.16 10:35

이번 다음/네이버 에서 주최하는 메쉬업 경진대회에 참가했다.
주제는 영문 뉴스 기사로 영어 문제를 자동으로 만들어 주는 사이트 이다.
영문 뉴스에서 문제 생성을 위한 영어 형태소 분석을 통하여, 추출된 단어로 문제를 생성하며, 그 단어의 출현 빈도와 비슷한 다른 단어를 랜덤으로 뽑아와서 문제를 생성한다.

핵심은 문제를 곧바로 자동생성 한다는것이다.

1. 목적
    - 학습자의 관심 분야에 대한 영문 기사 검색 및 활용을 통한 주도적 영어 학습 서비스 제공
    - 하나의 채널을 통해 다양한 언론사 뉴스 검색 편의 제공
    - 영어 기사를 활용한 영어 학습 데이터 생성으로 관심 분야를 활용한 재미있는 영어 학습 메뉴 제공
   
2. 특징
    - 학습자가 주도적으로 관심분야에 대한 영문 뉴스 학습 가능
    - 관심 분야 영문 기사를 활용한 자동 학습 메뉴 생성 기능으로 영어 학습 도서 및 강의 등 제한적 학습 콘텐츠 서비스 보다
       학습자가 학습할 수 있는 콘텐츠 범위가 무제한적.
    - 주관식, 객관식, 핵심 어휘, 독해 등 다양한 영어 학습 메뉴 제공을 통해 폭넓은 영어 학습이 가능함

3. 구현방법
    - 야후 뉴스검색 API를 사용하여 학습자의 관심분야 영문 컨텐츠  검색하고, 영어 형태소 분석을 통한 문제를 생성하였으며
      입력된 문장에 나오지 않은 단어는 답이 될 단어의 단어 우선순위를 기준으로 비슷한 단어를 검색해서 보기로 제시 함.
      또한, 전체 문장을 각각의 독립된 문장으로 분할 하여 구글 번역 API를 통한 해석을 함.

4. 서비스 가능성
    - 날마다 바뀌는 언론사들의 컨텐츠를 이용하여 무한한 영어 학습을 할 수 있고, 사용자가 원하는 컨텐츠로 학습 하여
      꾸준한 방문이 예상됨.

우선 http://mashup.winglish.com 에 접속하면 아래와 같은 이미지가 나오는데, 이때 기사검색, 직접입력 두가지 중 하나를 선택 하면 된다.


기사검색을 선택하여, 원하는 키워드로 검색하면, 아래와 같은 결과가 나온다. 이 결과를 야휴 뉴스검색 Open API를 사용하였다. View 버튼을 누르면, shadowbox.js를 이용하여 화면 내에서 기사가 나오는데 이 기사에서 원하는 부분을 클립보드에 복사해 두었다가 Input Box에 넣고 Send Data 버튼을 누르면 문제가 자동 생성된다.

생성될때 시간이 좀 걸리는데, 형태소분석 외에도, 구글 번역기 Open API를 사용하여 각각의 문장을 번역 하는데 시간이 걸리는것이다.

아래 화면이 입력된 뉴스 지문에서 문제를 자동 생성해낸 결과 화면이다. 플래쉬 게임형식으로 되어있고, 보기는 항상 랜덤으로 변한다. 같은 지문으로도 여러가지 문제를 자동으로 생성하기 때문이다.


Exercise 메뉴에서는 입력된 지문의 특정 부분에서 사전 빈출횟수가 별두개 짜리 단어를 4개만 뽑아서 빈칸을 만들어 준다. 어휘 학습에 도움이 많이 될듯 하다.

마지막 Summary 메뉴에서는 입력한 문장을 지문으로 보여준다.
문장 중간에 중요한 단어는 아래에 사전결과를 보여준다.



클래스 다이어 그램이다.
Analyzer - 실제 영어 문장 형태소 분석을 한다. 메서드중에서 getUsefulWords() 메서드가 재미있는데, 입력된 문장에서 단어의 원형을 뽑아내는데, 아주 재미있는 부분이다.


원형을 찾는 메서드는 아래처럼 구성되어 있다.



아래 다이어 그램은 사전 클래스 이다. 형태소 분석을 위한 원형을 찾을때 디비로 접근하는 시간을 줄이고자 텍스트 파일로 만들어 페이지 로딩 될때 해쉬테이블에 넣어 ASP.NET 캐슁 처리를 한 후 매번 메모리에서 데이터를 찾는 방법을 택했다.

또하나!!
한번에 긴 문장을 입력 받고나서, 어디서 어디까지가 하나의 완전한 문장인지 검사를 해야 했었는데, 문맥으로 검사하기에는 주어진 시간이 너무나 부족하여 최대한 머리를 굴려 분리 해 내긴했지만 약간 부족한 부분이 있는건 사실이다.
하나의 큰 paragraph에서 문장 단위로 쪼개는 소스는 아래와 같다.


약간 아쉬운것은 WarmUp 메뉴에서 생성한 문제를 Summary 에서 모두 다시 뿌려주는것이다. 이미 전문가 심사가 지났기 때문에 수정할지 말지 고민중이다.....

믹시
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바