2015년 6월 4일 목요일

3.mahout 실습기 - mahout 설치 및 환경설정(수정중)

mahout 설치 및 환경설정

1.mahout 다운

2.mahout 압축풀고 압축푼 디렉토리 MAHOUT_HOME path로 잡기

1.mahout 실습기 - vmware에 centos 설치(수정중)

vmware에 centos 설치

참고 사이트

http://stormaa.tistory.com/77


1. vmware 설치

2. centos 다운

3.가상 머신 만들기
 1)설정 > 디스플레이 > 비디오 > 비디오메모리 48M
 2)설정 > 저장소 > CD그림 클릭 > centos.iso 파일 클릭

4.설치 - 개발버전 (x-window)

5.네트워크 설정
 vi /etc/sysconfig/network-scripts/ifcfg-eth0 에서 ONBOOT값을 yes로 바꿈
 network restart
 #원격접속을 할려면
  설정 > 네트워크 > 포트 워딩에서 설정 (호스트 ip 가 접속할 ip)

6.네트워크 테스트
 ping 8.8.8.8 혹은 ping google.com

7.개발에 필요한 도구 설치
# yum install wget

# yum install bind-utils

# yum install nc.x86_64

8. 하둡에 필요한 도구 설치
# yum install man

# yum -y install  lzo-devel  zlib-devel  gcc autoconf automake libtool openssl-devel fuse-devel

# yum install cmake

# shutdown -r now

2. mahout 실습기-hadoop 설치 (수정중)

두번째 hadoop 설치 및 환경설정

참고 페이지

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

http://kertz.egloos.com/209218


1. hadoop 다운 , java 다운

2. java path, hadoop path 설정
 /etc/profile/ 이든 /home/계정/.bash_profile

3. /etc/hosts 설정
 마스터 노드, 데이터 노드들을 설정하는곳
 ifconfig 명령어 실행후 ip 주소로 master 잡고 그 뒤로 node들을 잡는다

ex)
xxx.xxx.xxx.1 master
xxx.xxx.xxx.2 node1xxx.xxx.xxx.3 node2xxx.xxx.xxx.4 node3

4. hadoop 파일 시스템을 위한 폴더 생성 및 권한 설정
*root 계정에서 실시
# mkdir /home/유저명/fs
# mkdir /home/유저명/fs/datamkdir /home/유저명/fs/namemkdir /home/유저명/fs/mapreducemkdir /home/유저명/fs/mapreduce/localmkdir /home/유저명/fs/mapreduce/system

chmod -R 755 /home/유저명/fs (hadoop fs -ls 하면 그자리임)

5.ssh 설정을 위해서 rsa 키 복제
 1)키 생성
   ssh-keygen -t rsa
 2)생성된 키 확인
  cat ~/.ssh/id_rsa.pub 
 3)하위 노드로 복제
 sudo scp ~/.ssh/id_rsa.pub 유저명@node1:~/master_key
->수정
 ssh node1          // node1로 접속함.[kertz@node1 ~]# mkdir ~/.ssh       // 여기서부터는 ssh 폴더를 생성하고 공인된 키로 네임노드의 키를 추가하는 과정임[kertz@node1 ~]# chmod 700 ~/.ssh[kertz@node1 ~]# mv ~/master_key ~/.ssh/authoried_keys[kertz@node1 ~]# chmod 600  ~/.ssh/authoried_keys  




2015년 4월 21일 화요일

[tomcat] 내멋대로 적는 tomcat - tomcat 설치편(리눅스)

내멋대로 적는 tomcat - 리눅스에서..


tomcat 설치편


결론 : 압출 파일 풀고, 풀어진 디렉토리 아래 conf 디렉토리 아래 (./tomcat/conf) server.xml 파일에 context 설정(혹은, context.xml 파일에 설정) 하면 끝


1. 톰캣 설치 파일(압축파일) 다운로드 :

https://tomcat.apache.org/download-80.cgi

여기서 원하는 버전의 tar.gz 버전을 원하는 디렉토리에 다운받습니다.
(wget 으로 원하는 url 입력해서 다운받아도 됩니다.)
참조 : http://luckyyowu.tistory.com/124














보통 /usr/local/ 디렉토리 아래에서 tomcat을 전체적으로 돌리지만, 각 사용자 계정별로 tomcat을 설치해서 돌려도 무관합니다. test서버일 경우에는 후자 쪽이 더 편하겠죠.


2. 파일 압축 해제(압축 풀기)

명령어 : tar -zxvf 파일이름.tar.gz

하시면 압축해제가 됩니다.

그러면 아래와 같은 디렉토리 구조를 확인 할 수 있습니다.











(그림은 7버전이네요;)

각 디렉토리에 대해서 아래 링크를 따라가면 자세히 알 수 있다.
(참조 : http://unionbaby.tistory.com/61)


3. server.xml 설정

conf 디렉토리 아래 server.xml 파일이 있다.
이 파일을 열면 여러 태그가 있는데 여기에 대해서도 위의 링크를 따라가면 자세한 설명을 들을수 있음.

<Service name="Catalina"> 태그가 하나의 서비스를 돌리기위한 설정인데
Connector 태그 중 protocol="HTTP/1.1"의 속성값을 가지는 태그가 바로 해당 url이 된다.
따라서 여기서 port 번호를 마음대로 지정하면된다.
ex)  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
               redirectPort="8443" /> (기본 설정임)


그리고 해당 컨텍스트를 설정을 추가해줘서 서비스를 이용하면 된다.
근데 context.xml에 추가해도 되구 server.xml에 추가하면된다.
ex) <Context path="tester" docBase="./testuser/test/webManager" debug="5" reloadable="true" workDir="./testusr/test/webManager/work" crossContext="true"/>

*필수*
path : url에서 쓰일 경로
docBase : 컨텍스트가 있는경로
work : work 폴더 경로 (없으면 미지정)

초보자 꿀팁!!!
url 경로 설정에 들어가는게 connector 태그에서 port 값과, context 태그에서 path 값이다.(빨간색 글자)
위의 경우는 http://localhost:8080/tetster 이 된다.
locallhost를 자기 pc의 ip 주소로 적어도 된다.

위와 비슷하게 설정하면 끝..!

서비스를 추가하고 싶으면 서비스 태그 전체를 복사해서 붙여넣기 해서 서비스 name랑 이하 태그들을 복사해서 추가하고 중복되는 값을 바꿔주기만 하면됨.


2014년 6월 11일 수요일

[java]int, double, float 등 변수들 비교하기

왜그런지는 몰라도 알아두면 좋은 java tip!!


java에서 int, double, float등 타입들을 비교할 때,
흔히 if문으로 장대한 비교문장들을 구현하는데..

솔직히 귀찮다면 이런 함수들을 이용 해보자!!

1.int 형

BigInteger 라는 클래스에 int 변수를 담아서 비교 한다!

 예문)
 BigInteger big1 = new BigInteger("123");
 BigInteger big2 = new BigInteger("124");
 int result =  big1.compareTo(big2);

 모두 다 아는 compareTo 함수를 호출하면 되는데, 이전에 주의 할 점은 BigInterger의 생성자에는 int형을 매개변수로 받는 생성자가 오버로딩이 되어 있지 않으므로 String형으로 바꿔 줘야 한다. 만약에 변수에 int형을 담았다면, new BigInteger(""+val); 이런식으로 바꾸는 센스!

2.double, float 형
 각 wrapper 클래스에 compareTo 함수를 이용하면 끝!.

 예문) 
 int result = Double.compare(0.1, 0.2);

3.String 형
 String 클래스는 comparaTo 함수를 잘 오버라이드 되어 있어 그래도 쓰면 됨.

 예문)
 String s1 ="abc";
 String s2 = "abd";
 int result = s1.compareTo(s2);

2013년 5월 30일 목요일

[indri by cygiwn]cygwin에서 indri 실행

cygwin에서 indri 실행

indri란 검색 시스템이다. 코퍼스(테스트)들을 인덱싱하고 쿼리를 넣어서 실행하면 어떤 문서가 얼마만큼 스코어를 가지는지 알 수가 있다.
indri 시스템은 다른 시스템과 마찬가지로 Linux용과 Window 버전 두개가 존재하는데, Window 버전 같은경우 설치가 쉽고 Window 유저에게는 사용이 쉬우나 쿼리를 한개 뿐이 넣을수 없다는 단점이 있다.
따라서 본 저자는 Window용 indri의 단점을 보완해주는 Linux용 indri를 설치 및 실행 해 볼 것이다.

이글은 2013년 5월 30일에 작성한다.

1.indri 설치
아래의 사이트에서 최신 버전의 indri를 다운 받자.
http://www.lemurproject.org/download-archive.php

tar 파일을 cygwin이 설치된 폴더에 복사를 하고 압축 해제를 한다.
>tar -xvf indri-5.4.tar

압축이 풀린 폴더에 들어 가서 아래와 같은 명령어를 입력한다.
>./configure
>make


2.실행
실행은 위에서 언급 한 것 처럼 두 단계로 나눈다.
첫번째, 테스트 코퍼스를 인덱싱(indexing)하고
두번째, 쿼리를 넣어서 실행을 한다.

하지만, 각 단계 마다 파라미터 파일이라고 일종의 옵션을 설정하는 파일을 만들어야 하는데  그파일의 내용은 아래와 같다
"//" 이것은 프로그래밍 언어에서 주석과 같다

인덱싱 할때(indexing.txt)
<parameters>
 <corpus>
   <path>Courpus</path> //코퍼스의 위치
   <class>txt</class> //코퍼스 파일의 형태 ex)ppt,pdf,...
 </corpus>
 <index>./data/index</index> //인덱싱 파일을 만들 폴더 이름
</parameters>

그리고 쿼리는 INQUERY로 만들어야 하는데
INQUERY에 대해서 나중에 시간이 난다면 다시 정리해보겠다
우선 쿼리를 실행할 때는 아래와 같은 파라미터 파일을 만들면 된다.

쿼리를 실행할때(query.txt)
<parameters>
<index>./data/index</index>
<query>
 <number>1</number> //몇번째 쿼리 인지
 <text>#combine(#wsyn(0.944036 대통령과 0.873368 대통령의) #wsyn(0.981478 에봇에 0.97925 다툼이 0.956589 찔러 0.948236 짜서) #wsyn(1.0 해변의) alberto fujimori #wsyn(1.0 스캔들에서) #wsyn(1.0 신문해서 1.0 받아서도 0.75493 용서받는))</text>
</query> //INQUERY의 형태 예제
<runID>testID</runID> //아이디 입력
<trecFormat>true</trecFormat>
</parameters>

여기서 쿼리가 여러개면 <number>,<text>만 순서대로 여러개 늘어 주면 된다.

이렇게 파라미터 파일이 완성 되었다면. 아래와 같은 명령어를 입력해서 인덱싱과 쿼리를 실행하면 된다.

인덱싱
./BuildIndex ./data/indexing.txt(인덱싱 파일이 있는 경로)

그러면 indexing.txt 파라미터 파일에 적힌 <index>속성의 폴더 경로에 위 테스트 코퍼스를 인덱싱한 파일이 완성 되게 된다. 여기서 중요한건 인덱싱을 한번더하게되면 중복이 되겠때문에 다른 문서를 인덱싱 할려고한다면 인덱싱 폴더의 경로를 바꿔주던가, 같은 폴더안에 파일 들을 지워 줘야한다.

그리고 실행은
./IndriRunQuery ./data/query.txt(쿼리 파일이 있는 경로)
이렇게 하면 화면에 뿌려 지게 되는데
파일로 존재하게 하고 싶다면
./IndriRunQuery ./data/query.txt >>a.txt
라하면된다. 여기서도 마찬가지로 a.txt 한 파일의 결과 값에 쿼리를 실행 했다면 결과 값이 중복되어 쌓이게 때문에 주의 해야 한다.


수정중

2013년 5월 27일 월요일

[how to use the GIZA++ on Window by Cygwin] : Cygwin으로 Giza++ 사용하기

GIZA++은 번역 확률을 구하는 툴이다(SMT:statical machine translation).
IBM Model 1~5까지 사용 가능하고 HMM으로 word alignment를 할 수 있다.

기본적으로 Linux 환경에서 설치 및 사용이 가능한데, 
Windows 사용자라면 Cygwin을 별로도 설치해서 사용 할 수 있다.
Cygwin은 Windows에서 Linux 처럼 사용 할 수 있는 tool이다.
저자는 BigData를 처리를 해야 하고 원래 OS가 윈도우라서 일부로 Cygwin에서 설치 및 사용 해보았다.

한국어로 설명이 잘 되어 있는 웹페이지가 없으므로 도움이 되고자 몇자 적어본다.
이 블로그는 http://arabicnlp.blogspot.kr/2009/06/how-to-setup-giza-on-windows.html를 참조 하였다.

이글은 2013년 5월 28일에 작성 되었다.

우선 GIZA++과 Cygwin에 대해서 설명이 더 필요 한다면 아래의 링크를 참조 하기 바란다.
GIZA++ :  http://www.statmt.org/moses/giza/GIZA++.html 
Cygwin : http://www.cygwin.com/


GIZA++ 설치
1. GIZA++을 다운로드 해라. download
2. Cygwin을 설치해라. 단, 주의 할 점은 설치시 패키지 선택창에서 다음과 같은 패키지들을 설치 해야 한다. [gcc, g++, binutils, make](cygwin을 설치 해본 사람은 알것이다. 잘 모르면 페키지 선택하는 창까지 다음다음을 눌러 보자)
3. 1번에서 받은 압축 파일을 Cygwin이 설치된 폴더(home/user/)폴더에 압축을 풀자. 그러면 폴더를 따라 들어 가면 GIZA++과 mkcls폴더가 나오는 우선 GIZA폴더로 이동해본다.

    cd /giza++
    make
4. 위와 같이 make 명령어를 실행 해서 설치를 한다.
5. 설치를 하면 GIZA++.exe, snt2plain.out, plain2snt.out, snt2cooc.out 가 설치 되었다고 뜰 것이다.



GIZA++ 실행
우선 parallel corpus나 comparable corpus가 있어 야된다.
parallel corpus는 source language문장이 target language 문장으로 완벽하게 번역된 문장들을 모은 말뭉치를 말하며, comparable corpus는 parallel 만큼 완벽하지만 어느정도 비슷하게 유사한 문장으로 번역된 문장들을 모은 corpus가 된다.
corpus들을 넣어주면 번역 확률이 나오는 것이다.

저자는 source를 영어, target을 한글이라 하겠다.

corpus가 준비되면 GIZA++ 폴더에 넣고 일반 text로 이루어진 파일들을 GIZA format으로 바꿔주는 작업이 필요한데 아래와 같은 명령어를 사용하면 된다.

./plain2snt.out file1(영어) file2(한글)

그러면 확장자가 vcp인 파일과 snt 파일 만들어 지게 된다.
vcp 파일은 각각 file1(영어), file2(한글)에 대해서 만들어지고
snt 파일은 file1_file2.snt, file2_file1.snt 이런식으로 파일이 만들어지는데
이것은 번역확률을 구하고잘 할때 방향(direction)을 의미 하는것 같다.(;;)

이제 GIZA를 실행하면 되는데 아래와 같다

./GIZA++ -s file1.vcp -t flie2.vcp -c file1_file2.snt -o result

저자는 영어가 source고 한글이 target이니 위와 같이 했다.
result는 최종적으로 구해지는 문서이다.

그 문서의 형태는 아래와 같다.


위 그림 A열은 source고, B열은 target이고, C 열은 source가 target으로 번역될 확률이다.