수요일, 5월 15
Shadow

#010 협업필터링

SEARCH ENGINE
협업 필터링은 주로 메모리 기반과 모델기반으로 나뉜다. 메모리 기반 방법: 유사도를 측정하여 유사한 사용자를 찾은후에 이들이 평가한 등급에 유사도에 따른 가중치를 부여한 평균값을 기반으로 예측을 한다.   - 이방법은매우 많은 데이터를 처리할때 문제가 발생할수있으며, 데이터 희소 문제에도 굉장히 민감하다. 모델기반 접근방법: 선형대수학, 확률론, 신경망 클러스터링, 레이턴트 클리스 등 다양한 방법을 이용해 예측모델을 만든다.

#009 집단지성 알고리즘1

SEARCH ENGINE
1. 사용자와 아이템   - 속성기반 : 사용자 속성정보는 일반적으로 애플리케이션의 기본적인 특징에 의존한다.       - 사용자 속성은 나이, 성별, 주소, 직업, 연봉 또는 교육 수준과 같은 개인정보를 포함할수 있다.   - 콘텐츠 기반: 문서의 내용을 분석해서 생성할수 있다. 막약 비구조적 텍스트에서 메타데이터를 추출하는 정보 검색과 텍스트 마이닝 영역에서 수많은 연구들이 진행된다면, 제목, 부제, 키워드, 하나의 문서나 관심영역의 문서 집합에서 나타내는 단어 빈도수 그리고 해당 아이템과 관련된 유용한 정보를 제공하는 다른 데이터등을 전환할수 있다.   - 사용자 행동 기반 : 물품을 구매하거나 콘텐츠를 작성하고, 아이템에 등급을 주거나 투표를 하는 등의 행동을 기반으로 사용자의 의도에 대해 명백한 정보를 제공해 준다. 사용자 프로필의 속성 계측도 1. 속성-( 숫자형, (항목형-서열형, 범주형)) ...

#008 지능화 시스템 아키텍쳐

SEARCH ENGINE
1. 동기식 서비스   - 클라이언트의 요청을 동기 방식으로 처리한다. (클라이언트는 서비스가 응답을 보내줄때 까지 대깋산다.) 이런종류의 서비스는 빨라야 한다.  - 이런 서브의 예로는 실시간 상품 추천 엔진, 사용자 프로필의 모델을 제공하는 서비스, 검색 쿼리에 따른 결과를 제공하는 서비스 등이 있다.   - 대용량 처리와 높은 성능을 위해 동기 서비스는 무상태형이어야 한다. (서비스가 요청을 처리할때 필요한 정보들은 모두 데이터베이스나 파일과 같이 영속적인 자원에서 받거나 서비스 요청의 일부분에 속하여 서버에 전달되어야 한다.) 2. 비동기식 서비스   - 작업 처리에 좀더 많은 시간이 필요하기 때문에 백그라운드에서 실행된다. 예측 모델이나 클러스터링을 통해 사용자 프로필을 학습하거나 검색을 위해 인덱싱을 하는 작업뿐만 아니라, 여러개의 인스턴스를 띄워 놓고 메시징 서버의 큐를 공유해 데이터를 처리한다. ...

#007 추출된 지능정보

SEARCH ENGINE
1. 데이터마이닝과 텍스트 마이닝  - 대용량 데이터셋에서 알고리즘을 이용해 반복되는 패턴을 찾고 이전에 몰랐던 경향을 알아내는과정 2. 클러스터링과 예측분석  - 클러스터링은 몇가지 그룹으로 묶어주는 작업  - 예측분석은 입력된 학습데이터를 기반으로 미지의 값을 예측하는 수학적인 모델 3. 지능형 검색  - 검색의 품질을 높이기 위해 지능 필터를 이용한 검색에서 사용자의 정보가 어떻게 사용되는지 확인 4. 추천엔진   - 사용자에게 관련 콘텐츠를 제공   - 콘텐츠를 분석하는 방법이나, 사용자들의 소통 정보를 이용하는 방법 모두를 사용해서 만든다.   - 추천엔진을 만들기위해 사용자에게 데이터를 입력받는다. 쇼핑리스트, 구매리스트, 위시리스트, 나이 태그 사용자 프로파일등을 데이터로 쓸수있다.   - 아마존의 경우 수백만의 제품 카탈로그를 보유한 대형 온라인 상점의 경우 추천 제품을 빠르게 제공하는 것이 도전 과제이다. ...

#006 웹2.0 애플리케이션의 7가지 원칙

SEARCH ENGINE
1. 네트워크는 플렛폼이다. - 요즘은 전통적인 라이선스 기반의 소프트웨어를 사용하는 기업이나 개인은 소프트웨어를 실행시키고 라이선스를 체킹하는 방식에서 최종 사용자가 브라우저에서 서비스를 사용하기만 하면 되는 서비스 제공방식으로 바뀌었으며, 24시간 365일 업그레이드된 정보를 제공받을수 있게 되었다. 2. 집단지성을 이용한다. - 사용자들에 의해 제공되는 정보를 어떻게 이용하느냐 이다. 개인화된 서비스를 제공할수록 사용자들에게는 좀더 알맞은 콘텐츠를 제공한다. 3. 데이터를 복제하기 힘들다. - 사용자들의 활동성을 기반으로 소프트웨어가 만든 기반 데이터의 가치는 상당히 크다. 4. 평생 베타버전 - 사용자를 끌어 모으거나, 중ㅇ한 피드백을 받기위해서 일찍 오픈한다. 이들은 릴리즈 주기를 짧게 자주 되풀이 하며, 사용자들을끌어모은다. 5. 간단한 프로그래밍 모델 - 간단하게 만들어라 6. 다양한 환경에서 작동하는 소프트웨어 - 단일 환경에서 돌아가는 애플리케이션 보다 다양한 환경에서 작동하는 애플리케이션이 더 가치를 가진다. 7. 풍부한 사용자 경험 - AJAX를 사용한 인터페이스는 성공을가져온다. ...

#005 웹애플리케이션의 집단지성

SEARCH ENGINE
     집단지성을 적용하는데 필요한 세가지 요소. 1. 사용자들이 소통하게 하라. 2. 사용자들에게 배워라 3. 소통 데이터와 수집된 데이터를 기반으로 개인 콘텐츠를 제공하라 집단지성이 애플리케이션에 적용 될수 있는 방법 1. 정규 규합 2. 등급, 리뷰, 추천 3. 사용자 생성 콘텐츠 4. 태깅 북마크 투표 5. 태그 클라우드 메뉴 6. 사용자 프로필을 뽑기 위한 콘텐츠 분석 7. 클러스터링과 예측 모델 8. 추천 엔진 9. 검색 19. 외부콘텐츠 활용 집단지성의 이점들 높은 유지율- 사용자가 애플리케이션과 더 많이 소통할수록 애플리케이션에 흥미를 가지게 되고 재 방문할 가능성도 높아진다. 마켓과 사용자에 많은 기회 보장- 소통이 ㅁ낳아지고 사용자들이 페이지를 더 많이 방문할수록 마켓은 사용자들과 커뮤니케이션을 할 기회를 많이 가지게 된다. 사용자가 트랜잭션을 완료하거나, 관심 정보를 찾을 확률이 높아진다. - 사용자가 찾으러는 정보와 관련성이 높은 정보를 제공할수록 거래에 필요한 정보이거나 관심있는 콘텐츠 일 확률이 높다. 검색 엔진 순위 상승 - 사용자 들이 콘텐츠에 기여하고 참여를 많이 할수록 애플리케이션 내부에 콘텐츠가 더 많이 쌓이게 되고 검색엔진에 의해 색인될 문서들도 많아 지게 된다. ...

#004 실전 예제로 살펴보는 집단지성 프로그래밍

SEARCH ENGINE
오랜만에 재미 있는 책이 올라와서 책 하나 를 요약을 해 보려 한다. 책이름은 실전 예제로 살표보는 집단지성 프로그래밍. 이름은 거창하고 어렵지만 간단하게 웹에서 사용되는 문서를 자신의 서버로 가져와 분석하는 내용을 정리한 책이다. 이 책을 보면서 느낀점은 책이 굉장히 쉽다는 것이다. 자바를 조금만 안다면 쉽게 따라 할 수 있다.  

#001 제2회 루씬한글분석기 세미나 개최

미분류
루씬한글분석기 커뮤니티에서 제2회 기술세미나를 개최합니다. 루씬한글분석기 커뮤니티는 오픈소스 검색엔진인 Lucene/Solr/ElasticSearch에 대한 기술지원과 관련정보를 공유하는 모임입니다. 이번 기술세미나의 행사개요는 다음과 같습니다. 주제 : Solr 활용 일시 : 8월 24일(토) 14:00~17:00 (13:30부터 입장 가능) 장소 : 상암동 누리꿈스퀘어 비즈니스타워 4층 대회의실 참가비 : 무료 세부내용 - Solr 활용 입문 - 한국어와 Solr query - Comparison of search index(Solr) and Databases - How to build a solr connector for a source system 특히 이번 세미나에는 스웨덴의 오픈소스 검색엔진 및 빅데이터 전문 회사인 Findwise에서도 참가하여 발표할 예정입니다. 세미나에 대한 자세한 안내는 "루씬 한글분석기" 네이버 카페(http://cafe.naver.com/korlucene)에서 확인하시기 바랍니다. 아울러 Solr를 활용하여 프로젝트를 진행하고자 하는 회사를 위해 LucidWorks의 Solr course가 9월4일~5일 진행될 예정입니다. 자세한 안내는 네이버 카페의 다음 글을 참고하시기 바랍니다. - Solr 교육 등록 안내 (http://cafe.naver.com/korlucene/1062)...

#003 SPRING FRAMEWORK Procedure 만들기(JdbcDaoSupport, StoredProcedure)

SPRING Framework
필자는 오라클 데이터베이스를 사용하여 개발을 주로 한다. 오늘 고객에게 프로시져를 배치로 돌릴수 있는 프로그램을 만들어 달라는 요청이 들어왔다. 그래서 그에 해당하는 로직(프로시저)를 만들고 그것을 자바에서 실행하기 위해 사용했던 방법을 공개 하고자 한다.   1. 언제 어디서나 @Autowired를 사용하여 개발을 하기 때문에 DAO에 해당하는 인터페이스를 만들었다. 이것을 잘 모른다면 인터넷에 찾아 보길 바란다. public interface ProcCallDAO { public int getMProcedure(); }   2. 인터페이스에 해당하는 부분을 구현하기 위해 ProcCallDAOExProc라는 클래스를 만들고 ProcCallDAO를 구현하였다. import org.springframework.jdbc.core.support.JdbcDaoSupport; public class ProcCallDAOExProc extends JdbcDaoSupport implements ProcCallDAO{ public int getMegamartProcedure() { int status = -1; try { String spName = "P_VOC_INPUT"; ProcCallDAOImpl sp = new ProcCallDAOImpl(getJdbcTemplate().getDataSource(), spName); sp.execute(); status = 1; } catch (Exception e) { logger.error...

#002 Spirng Framework Download

미분류
스프링으로 개발을 하면서 가장 힘들었던 부분이 어떻게 하면 데이터를 파일로 다운로드 할수 있을까 하는 부분이 아닐까 생각한다. 그러한 고민을 날려줄 소스를 공개하고자 한다. 소스코드는 의외로 간단하다. 1. Controller @RequestMapping(value = "json/test/findOpinionVerbe" , method = RequestMethod.GET) public String findOpinionVerbe(HttpServletRequest request,HttpServletResponse response){ String FolderName = "/test/"; String date = new DateFormat().getCurrentWithTime(); String fileName = "opi_"+date+".csv"; download(FolderName, fileName, request, response); return "common/download"; } 2. Method public HttpServletResponse download(String FolderName ,String fileName, HttpServletRequest request,HttpServletResponse response){ try { String fn = FolderName; File file = new File(fn+fileName); FileInputStream in = new FileInputStream(file); byte[] content...