소프트웨어 301

형태소 분석기에 유니코드 모듈 추가

운동하고 집에와서 잠시 게임으로 긴장을 풀어준 다음에 바로 코딩에 들어갔다. 간만에 하는 C언어 코딩이지만 풋~~~ 역시나 나름의 맛이 있는거 같다. ㅎㅎ 오랜만에 형태소 분석기 코딩을 하는 이유는.....???. typos님 께서 공개된 형태소 분석기가 필요하다고 해서 썩혀 두려고 한 분석기 소스를 오랜만에 훓어 보았다. 게다가 역방향 복합명사 분해 알고리즘을 실제 적용해 보고 싶은 욕구가 불끈 솥아 올랐던것도 한몫 하기도 했다.(물론 Lucene에 붙이기 위해서이지만 14만 한국어 사전의 취약점 때문에 굉장히 망설였다.) 일단 Lucene이 유니코드 기반의 문자셋을 이용하니 그동안 완성형, 조합형 기반의 분석기 소스에 유니코드 변환 모듈을 넣을 필요가 있었다. iconv라는 라이브러리를 쓰려고 했지만..

형태소 분석기 0.9.1 배포 및 라이센싱

형태소 분석기에 대한 다양한 문의가 오고, 몇몇 분들이 라이센스에 대한 문의를 해주셔서 이를 정리하고자 한다. 정리하면서 몇 가지 이상한 분석 결과를 만들어내는 것들을 수정해서 재배포 한다. 1. Korean Morpheme Analyzer V0.9.1 by therocks. 이전 버젼들은 모두 삭제해서 지금 올라가는 것을 사용하는 것을 권장한다. org.snu.ids.ha.zip * 수정된 점 1) 부정확한 띄어쓰기 추가 개선 '검색서비스를' 과 같은 문장을 처리할 때, 속도를 향상시키기 위해서 앞부분에서 적당히 검색결과가 나오면 띄어쓰기 처리를 해주고 다음 문자열들을 처리하도록 하였는데, 검색(명사)+서(조사)+[ ]+비(명사) 가 되는 순간 잘라버려서 서비스가 정상적으로 추출되지 않는 문제가 있었는..

강승식 교수의 형태소분석기를 Python에서 활용하기

집단지성프로그래밍 책을 보다가 보니 꼭 필요한 것이 하나 없었다. 형태소분석기가 없으니 한글에 대해선 전혀 처리가 안된다. 그 이유때문에 형태소 분석기를 만들기엔 부담되고 그래서 강승식 교수의 형태소 분석기를 Python에 붙여보기로 했다. 그런데 의외로 간단하게 끝났다. 아래 코드를 컴파일 해서 사용하면 된다. 1. C 소스 파일 : PyKMA.c #include "Python.h" #include "ham-ndx.h" #include "ham-api.h" #include "keyword.h" static PyObject *ErrorObject; static PyObject* PyKMA_getstems(PyObject *self, PyObject *args) { PyObject* flist; int i..

UTF-8로 웹 사이트 배포하기

UTF-8로 웹 사이트 배포하기 1. 개요 VS.NET에서 웹 사이트를 배포할 때 Web.config 파일의 전역화 설정을 보면 로 설정되어 있습니다. Ks_c_5601-1987은 캐릭터 셋의 명칭이고 이것의 인코딩 명칭은 EUC-KR 입니다. 즉 위에 euc-kr 로 써야 할 명칭이 Ks_c_5601-1987 로 잘못 쓰여졌다는 논란이 있기도 합니다만, 결국은 웹 사이트를 euc-kr로 배포하겠다는 의미를 나타냅니다. 하지만 외국 사이트에서 euc-kr로 인코딩된 웹 사이트로 접근시 글자가 깨지게 됩니다. 그렇기 때문에 외국에서 한글 사이트를 배포해야 할 경우가 발생할 때 표준 인코딩 방식인 UTF-8로 인코딩 해야 합니다. 그럼 asp.net 사이트에서 utf-8로 인코딩하기 위해서 어떻게 해야 하는..

오픈소스 Lucene을 활용한 DB Full-text 검색엔진 개발

요즘 검색이 관심이 있어 자료 수집중이다..NET 관련된 내용을 찾다고 보니 괜찮은 내용이 있어 펌 했습니다.-------------------------------------------------------------------------------------------------태어나서 처음으로 혼자서하는 알바를 해봤다. 2007년 12월 말에 오픈소스 Lucene을 사용하여 검색엔진을 개발해보지 않겠냐는 의뢰가 왔을 때 지금 하고있는 프로젝트들이 많아서 거절하려고도 했었지만 자바와 오픈소스를 사용하여 무엇인가를 개발한다는 것은 내 마음을 무척이나 설레이게 했다. 결국, 시간적 압박보다는 일을 선택했는데 아직 내가 많이 모자라기때문에 처음 계획했던 것 보다는 많이 축소한 단위로 프로젝트를 진행했다.프..

ASP.NET 성능 개선 TIP 리스트

Haroon Waheed SQL Server & .NET Devotee 최상의 coding policies & practices 을 적용해도 우리는 asp.net 어플리케이션으로 부터 바라는 만큼 성능을 얻지 못하고 있습니다. 왜냐면 ASP.NET 어플리케이션에 직접적으로 영향을 주는 또다른 매우 중요한 많은 이유가 있기 때문입니다. 시스템 이외에 좋은 성능을 얻기 위해서는 상세한 아키텍쳐, 디자인, 코딩 그리고 배포가 요구되는데요. 이번 내용은 ASP.NET 성능을 최대화를 위해 구현할 수 있는 다소 많은 성능을 미조정(微調整)하기 위한 리스트를 보여줄 것입니다. 불필요한 HTTP Modules 를 제거해라 There are various HTTP modules in ASP.NET that interc..

C#의 디버깅과 오류 처리

* 의미적 오류(semantic error) 또는 논리적 오류(logic error)   : 실행 자체에는 문제를 일으키지 않지만 응용 프로그램의 논리에는 해를 입히는 오류.* 디버깅(Debugging)   : 오류가 보고되었으면 언제 어떤 문제가 어떻게 일어나는지를 파악하고 원일을 해결하는 작업.1. Visual Studio 에서의 디버깅   1) 프로그램이 디버그 모드 하에서 실행되면, 사람이 작성한 코드 이상의 것이 내부적으로 진행된다. 디버그 필드는 응용 프로그램에 대한 심볼 정보를 유지하며, VS는 그러한 정보를 통해서 코드의 실행을 구체적으로 알아낸다.      2) 심볼 정보로 가능한 작업들 (프로젝트 컴파일한 후 Debug 디렉토리의 .pdb 파일에 저장된다.)      (1) 디버깅 정보..

닷넷 트랜잭션 정리

개인적인 필요에 의해 정리를 해 보았습니다.... COM+ 트랜잭션 특징1. 트랜잭션 속성을 지정하는 단위가 메소드가 아닌 클래스이다.2. Nested Transaction을 지원한다.3. 항상 DTC (Distributed Transaction Coordinator)와  IPC 통신을 하며 2PC 처리를 하기 때문에 성능 저하가 있다. System.Transactions의 특징1.LTM (lightweight Transaction Manager)와 OTM (OleTx Transaction Manager)로구성되며, 로컬 트랜잭션 사용시 LTM 이, 분산 트랜잭션 사용시  OTM이 관여하는데, 사용자가 지정하는 것이 하니라 자동으로promotion 된다.2. RM (Resource Manager, 예, ..

ASP.NET 엔터키 처리 방법

로그인 같은 경우 아이디와 비밀번호를 입력 후 엔터 키를 입력할 때로그인 버튼의 클릭이벤트를 실행시키고 싶을때가 있다.일반적으로 텍스트박스에서 엔터키를 입력하면 포스트백이 자동으로 일어나지만원하는 버튼 이벤트를 지정하고 싶을때는 다음의 방법을 사용한다.asp:TextBox ID="txtName" runat="server" Width="192px" style="width:108px;height:18px"> asp:TextBox>asp:TextBox ID="txtPassword" runat="server" Width="192px" TextMode="Password"> asp:TextBox>asp:ImageButton ID="btnLogin" runat="server"  ImageUrl="images/main..