일요일, 12월 22
Shadow

미분류

#065 ByteBufferPool

미분류
<source 2> ByteBufferPool.java public class ByteBufferPool { private static final int MEMORY_BLOCKSIZE = 4096; private static final int FILE_BLOCKSIZE = 10240; private final ArrayList memoryQueue = new ArrayList(); private final ArrayList fileQueue = new ArrayList(); private boolean wait = false; public ByteBufferPool(int memorySize, int fileSize, File file) throws IOException { if (memorySize > 0) initMemoryBuffer(memorySize); if (fileSize > 0) initFileBuffer(fileSize, file); } private void initMemoryBuffer(int size) { int bufferCount = size / MEMORY_BLOCKSIZE; size = bufferCount * MEMORY_BLOCKSIZE; ByteBuffer directBuf = ByteBuffer.allocateDirect(size); divideBuffer(directBuf, MEMORY_BLOCKSIZE, memoryQueue); } private void initFileBuffer(int s...

#064 reflesh

미분류
tid=setTimeout(a,b)은 b초후에 a함수를 실행합니다. 이것은 1회만 실행하는거구요. tid=setInterval(a,b)는 b초마다 a함수를 실행합니다. 이것은 무한루프가 되는거지요, 둘모두 실행후 중단할때에는 clearTimeout(tid) 와 clearInterval(tid) 로서 실행을 중단합니다. tid는 setTimeout과 setInterval을 실행후에 리턴되는 타이머 ID구요, 이 타이머ID로서 타이머를 중단할 수 있는거지요.   setTimeout을 이용한 반복문의 예제 <script> cnt=0; function a(){ if(cnt<10){ cnt++; alert(cnt); tid=setTimeout(a,1000); //1초후 a함수 실행 - 재귀호출 } else clearTimeout(tid); } a(); </script>   setInterval을 이용한 반복문의 예제 <script> cnt=0; function a(){ if(cnt<10){ cnt++; alert(cnt); } else clearInterval(tid); } tid=setInterval(a,1000); //1초후 a함수 실행 - 재귀호출 </script> // ...

#063 리플렉션(reflection)

미분류
* 정의 객체를 통해 클래스의 정보를 분석해 내는 기법 지금 실행중인 프로그램에서 사용하는 객체를 비춰줌. 지금 내가 사용하는 객체의 정보 가져오기, 객체의 매소드 호출등의 작업을 할 수 있게 해줌 - Class클래스 사용. - 클래스 객체의 형확인: instanceof   * 사용법 ex) 외부 Data객체를 가정하에..... 해당 객체의 정보는 배열형태로 리턴됨.(한 객체는 여러개의 정보를 포함하기 때문...) 1. Data객체 클래스의 메서드 알아내기 Class c = Data.class; Method[] m = c.getMethods(); 2. Data객체 클래스의 필드 알아내기 Class c = Data.class; Field[] f = c.getFields(); 3. Data객체 클래스의 생성자 알아내기 Class c = Data.class; Constructor[] cs = c.getConstructors(); 4. Data객체 클래스의 인터페이스, 상위클래스 알아내기 Class c = Data.class; Class[] iface = c.getInterfaces(); Class sc = c.getSuperclass();  객체 정보 가져 오기 예)  import java.lang.reflect.*; public class Exam_Reflection {     public Exam_Reflection(Object object) {     ...

#007 시맨틱-연관어

미분류
유의어ㆍ연관어 파악 주제별 분류 검색 트렌드ㆍ이슈 변화도 한눈에 한민옥 기자 mohan@dt.co.kr | 입력: 2009-12-23 21:02 | 수정: 2009-12-24 14:42 최근 검색 포털 시장에서 네이트의 기세가 빠르게 상승하고 있습니다. 네이트 운영업체 SK커뮤니케이션즈에 따르면 12월 둘째주 기준 네이트의 통합 검색 점유율은 10.23%로, 지난 2001년 출범이래 처음으로 두 자릿수를 돌파했습니다. 이같은 네이트 상승세의 일등공신으로 꼽히는 게 바로 시맨틱 검색인데요. 아직은 개념조차 다소 생소한 시맨틱 검색의 세계에 대해 알아보겠습니다. 시맨틱(semantic)이라는 단어를 사전에서 찾아보면 `의미의' 또는 `의미론의'라는 뜻으로, 시맨틱 검색은 한마디로 의미 기반의 검색이라고 할 수 있습니다. 이에 따라 좀 광범위하긴 하지만 시맨틱 검색은 단순히 단어의 의미를 알아서 그 동의어와 유의어, 연관어를 파악해 한번에 검색할 수 있음을 의미하기도 하고, 검색자의 마음을 읽는 맞춤 검색이라는 의미로 개인화 검색을 포함하기도 합니다. 현재 포털업계에서 얘기하는 시맨틱 검색은 주로 기존 키워드 매칭 방식의 한계를 보완하는 차세대 검색, 대안 검색의 이미지가 강합니다. ◇시맨틱 검색은 어떤 원리로 가능할까요?=시맨틱 검색은 의미를 이해하는 검색이라는 목표를 가지고 다양한 접근 방식으로 서비스를 제공합니다. 우선 가장 간단하게는 단어의 의미를 정의해 유의어, 동의어, 연관어를 파악합니다. 예를 들어 특정인의 출신 학교를 확인하고 싶을 때 아무개 ...

#006 네이트 시맨틱검색, 원리는 무엇일까

미분류
네이트가 최근 ‘시맨틱 검색’이란 서비스로 대박을 치고 있습니다. 시맨틱 검색이란 말 그대로 문서의 의미(시맨틱)을 분석해 검색하는 것을 말합니다. 국내에서 ‘시맨틱’을 전면에 내세운 서비스를 시작한 것은 네이트가 처음인 것 같습니다. 네이트는 이 서비스를 선보인 이후 지난 주 창사이래 처음으로 통합검색 점유율이 10%를 넘겼습니다. 네이트 홍보팀은 요즘 경마중계하듯 매주 자사 검색점유율 상승분에 대해 보도자료를 배포하고 있습니다. 네이트가 최근 얼마나 고무돼 있는지 보여줍니다. 하지만 네이트의 시맨틱 검색 기술에 대해서는 많이 알려지지 않은 것 같습니다. 언뜻 보기에는 단순한 서비스인 것처럼 보이지만, 이 서비스에는 검색엔진 및 자연언어처리 업계가 지난 10년동안 연구해온 결과물이 반영돼 있습니다. 시맨틱 검색이라는 말은 ‘시맨틱 웹’에서 차용된 용어입니다. 시맨틱 웹을 기술적으로 이해하려면, 온톨로지∙RDF 등의 용어를 알아야 합니다. 쉽지 않은 일이죠. 온톨로지는 컴퓨터가 인간의 인식 능력과 유사한 기능을 하도록 하기 위해 만들어 놓은 거대한 데이터셋이라고 이해하면 될 것 같습니다.. 시맨틱 웹은 XML 기반의 마크업 언어를 기반으로 하며, RDF라는 구조를 기반으로 합니다. 이렇게 쓰기는 했지만, 사실 저도 자세히 모르는 내용입니다. 하지만 네이트의 시맨틱 검색에 온톨로지, XML, RDF 등의 기술이 반영된 것은 아닙니다. 때문에 엄밀히 말해서 네이트의 시맨틱 검색은 흔히 얘기하는 ‘시맨틱’은 아니라고 볼 수 있습니다. 그렇다고 해서 네이트...

#006 시멘틱 웹

미분류
크게 부각되진 않았지만 얼마 전 네이트와 네이버에서 각각 '시맨틱' 및 '시맨틱 웹' 검색 서비스를 내놓은 적이 있었다. 네이트는 연초부터 베타 테스트를 하던 시맨틱 검색 기능을 오픈했다. 이 기법은 구문이나 문장 분석에서 중요 주제어를 추출하고, 이에 대한 값을 찾는 자연어 처리기술을 도입했다. 따라서 블로그, 게시판과 같은 구조화되지 않은 텍스트를 대상으로 주제 분류와 예상 답변을 제시하는 방식으로 그 뼈대는 일반적인 텍스트 기반 정보 검색(IR) 기법을 기반으로 하고 있다. 주제어 제시 방식이 마치 의미 기반 정보를 찾아 주는 것으로 보여 시맨틱이란 용어를 쓰는 듯 하다. 그런데, SK컴즈의 보도 자료를 보면 '시맨틱 웹'이라는 생뚱 맞는 내용을 등장시켜 혼란을 주고 있다. 시맨틱 검색은 1998년 시맨틱 웹이 주창되면서부터 차세대 검색서비스로 주목받으며 전세계적으로 연구개발이 진행되고 있는 분야이다. MS의 Bing이나 구글의 스퀘어드(Squared) 검색도 시맨틱검색의 일종이다. 국내에서는 솔트룩스나 시맨틱스가 시맨틱 검색을 개발하고 있다. 이같은 방식은 하키아(Hakia)와 파워셋(Powerset) 등 해외 시맨틱 검색 업체들이 개발했으나 실험실 단계에서 오픈해 아직 포털에 적용되지는 못했다. 정보 검색에 대한 두 가지 접근에서 보다시피 네이트가 이용한 (시맨틱) 기술은 전산학에서 꽤 오래된 분야로서 텍스트 분석, 자연어 처리, 기계 학습과 같은 분야는 인공 지능 분야에서 시맨틱 기술을 말하는 것이다. 하지만, 시맨틱 웹은 이와 완전히 다른 접근이다. 시맨틱 웹은 웹을 ...

#005 한국어뭉치

미분류
외국인을 위한 한국어사전과 말뭉치   강현화 경희대학교 한국어학과     Hyoun-Hwa Kang. Kyung Hee University. Korean dictionary for foreigners & corpus. Journal of The Applied Linguistics Association of Korea Vol. 16. No1, 2000   This paper1) discusses the necessity of Korean dictionary for foreigners and specifies some descriptive methods in Korean dictionary and their usefulness. First of all, this study points out the pitfalls of the current Korean dictionary and proposes publication of a new Korean dictionary for foreigners that can be distinguished from Korean dictionary for Koreans. For this purpose, this study carries out a thorough investigation into validity of Korean dictionary based upon the corpus. Second, this study analyses the grammatical information essenti...

#004 검색엔진 사용 연산자

미분류
4. 검색엔진에서 사용하는 연산자 (1) 부울 연산자 대부분의 검색엔진은 검색어들에 대해 AND, OR, NOT 의 논리연산을 제공하고 있으며, 검색엔진에 따라서 사용하는 기호는 다를 수 있다. 1) AND 연산자(=논리곱 연산) 두 개의 단어가 입력되었을 경우 두 단어를 동시에 모두 담고 있는 정보만을 검색한다. 주로 AND 와 & 기호를 사용한다. 예1) 한국 AND 월드컵 '한국'이라는 단어와 '월드컵' 이라는 단어를 동시에 포함하는 문서를 검색한다.   그림Ⅲ-26] AND 연산자를 이용한 검색 예 예2) Computer & Internet 'Computer'라는 단어와 'Internet' 이라는 단어를 동시에 포함하는 문서를 검색한다. 【검색예제】 우리 조상들이 후손들에게 남겨준 문화재중 댐공사로 수몰 당하는 문 화재도 많지만 위기를 모면한 문화재도 많다. 위기를 모면한 문화재 중에 삼국유 사의 저자인 일연스님의 탑과 비가 그 대표적인 예이다. 이 탑과 비는 고려 충렬 왕 21년(서기 1295년)에 인각사라는 절에 건립되었다. 이 탑과 비가 있는 행정 구역상 주소를 쓰시오.(URL이 아님) ▶검색엔진: 네이버 ▶키워드 : 인각사&문화재 ▶사이트 : http://research.kyungpook.or.kr/moonhoa/HTML/T11002.HTM ▶답 : 주소 : 군위군 고로면 화북리 612, 613의 3전 2) OR 연산자(=논리합 연산) 두 개의 단어가 입력되었을 경우 두 개의 단어를 모두 담고 있는...

#003 정보검색시스템의 구성요소

미분류
정보검색시스템의 구성요소   1. 정보검색시스템이란? 정보 수요자가 필요하다고 예측되는 정보나 데이터를 미리 수집, 가공, 처리하여 찾기 쉬은 형태로 축적해 놓은 데이터 베이스로부터 요구에 적합한 정보를 신속하게 찾아내어 정보 요구자에게 제공하는 시스템을 말한다.   2. 배경학문 자료구조론 (Speed & Memory Trade-off) 데이터베이스론 (DB Indexing) 검색알고리즘 AI의 Search, NLP, Story understanding Algorithm ES의 Inferencing   3. 구성요소 웹로봇 웹상에 존재하는 문서들을 가져오기 위해서 웹의 하이퍼텍스트 구조를 자동적으로 추적하여 참조되어지는 모든 문서들을 재귀적으로 검색하는 프로그램을 말한다. 여기서 '재귀적으로'라는 의미는 어떤 명시된 트래버스 알고리즘으로 유한하게 정의되어지는 것이 아님을 주목하라. 비록 로봇이 문서 선택을 위해 몇몇의 발견적인 학습법을 허락한다거나 방문하기 위한 문서의 순서를 정한다거나 하더라도 여전히 로봇이다. 일반적인 웹브라우저는 로봇이 아니다. 왜냐하면 그것들은 인간에 의해 수행되어진다. 그리조 참조되어지는 문서들을 자동적으로 수집하지 않는다. 크롤러(crawler), 스파이더(spider), 개더러(gatherer), 웸(worms), 안츠(ants) 등 다양한 이름으로 불리우지만 일반적인 명칭으로는 로봇이라 칭하는 비율이 높은듯 하다. 로봇을 얘기하면서 빼 놓을 수 없는 것이 로봇 배제 표준(robot excl...

#002 검색엔진 방식

미분류
1. 웹 인덱스 방식(Keyword 검색방식) - 가장 일반적인 방식으로 검색어를 포함한 웹 문서들을 검색 - 로봇이 주기적으로 인터넷 상의 정보를 검색하여 검색 엔진의 호스트 컴퓨터에 보내어 새로운 인덱스 데이터베이스 구성 - 로봇의 추출 방법과 효율성에 의해 검색 엔진의 성능 좌우 - 단점 ☞ 검색결과가 너무 많아져 사용자의 판단을 흐리게 할 수 있음 ☞ 특정 단어만의 검색에 의한 결과이므로 웹 문서의 신뢰도가 낮아짐 ☞ 검색 연잔자가 초보자에게는 어려움 - 웹 인덱스 방식의 대표적인 검색 엔진 ☞ Altavista : http://www.altavista.com ☞ Lycos : http://www.lycos.co.kr(한국) http://www.lycos.com(미국) ☞ 네이버 : http://www.naver.com ☞ 심마니 : http://www.simmani.com 2. 웹 디렉토리 방식(메뉴 검색방식) - 인터넷에 존재하는 웹 문서들을 주제별, 계층별로 정리하여 데이터베이스 구축 - 검색방법 : 나열되어 있는 분류 항목 중 가장 가까운 항목을 선택하여 따라가면 되므로 매우 쉽고 간단. - 검색원리 : 사람이 직접 문서를 수집하고 관리 - 장점 : 웹 문서의 신뢰도가 높아짐 - 단점 : 검색결과로 얻는 웹 문서의 수가 비교적 적으므로 풍부한 검색 결과를 얻을 수 없음 - 웹 디렉토리 방식의 대표적인 검색 엔진 ☞ Yahoo! : http://www.yahoo.co.kr(한국) http://www.yahoo.com(미국) 3. 통합형 검색방식 - 자신만...