docker+Jupyter+R로 텍스트 마이닝할 수 있는 환경 만들기
하고 싶은 일
docker의 Jupyter에서 R로 텍스트 마이닝하고 싶습니다. MeCab 과 RMeCab 을 사용하면 할 수 있을 것 같다! 라고 생각해 jupyter/datascience-notebook 의 docker 컨테이너에 인스톨 하려고 하면 빠졌기 때문에 메모.
발생한 문제
우선 jupyter/datascience-notebook을 기동해 R의 노트북을 작성할 때까지는 여기 우선 Jupyter상에서 환경을 구축해 보려고 MeCab를 인스톨까지는 순서대로로 좋았지만, 막상 RMeCab를 인스톨 하려고 하면, 에러 메세지가・・・
# RMeCabをインストールしようとしたら・・・
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
# うまくいかなかった
Warning message in install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source"):
“installation of package ‘RMeCab’ had non-zero exit status”Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
좀 더 자세한 오류 내용을 보려면 Jupyter terminal에서 R을 시작하고 같은 방식으로 설치를 시도합니다.
R
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
RMeCab.cpp:59:70: error: narrowing conversion of ‘144’ from ‘int’ to ‘char’ inside { } [-Wnarrowing]
분명히 c++ 코드에서 int->char을 캐스트하지 못합니까? 오류 메시지 등으로 검색하는 경우 RMeCab은 gcc-5 환경에서 설치해야하는 것 같습니다. . 자신의 환경의 gcc는 버전 7이었다. 이것이 RMeCab 설치 실패의 원인 인 것 같습니다.
※int->char의 캐스트에 실패하는 것은 이 과 같은 현상일지도 모른다.
설치 절차
궁극적으로 성공한 것은 다음 단계입니다. gcc-5를 사용하여 RMeCab을 설치합니다.
0. 전제
이 기사 등을 참고로 sudo
사용할 수 있는 jupyter/datascience-notebook의 컨테이너가 일어
1. MeCab 설치
install - rmecab 리눅스의 설명에 따라 설치.
sudo apt update
sudo apt install mecab libmecab-dev mecab-ipadic-utf8
설치되어 있는지 확인.
mecab
インストールに成功したよ!
아래와 같은 결과가 표시되면 OK.
インストール 名詞,一般,*,*,*,*,インストール,インストール,インストール
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
成功 名詞,サ変接続,*,*,*,*,成功,セイコウ,セイコー
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
! 記号,一般,*,*,*,*,!,!,!
EOS
2. gcc-5 설치
gcc-5를 설치.
sudo apt install gcc-5
sudo apt install g++-5
sudo apt install gfortran-5
3. update-alternatives로 버전 전환
여러 gcc 버전이있는 환경에서는 update-alternatives에서 버전을 전환하고 사용 이번에는 gcc-7 <-> gcc-5의 전환이 필요.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 10
덧붙여서 등록 후
update-alternatives --config gcc
그렇다면 등록 된 버전 중에서 선택하여 전환 할 수 있습니다.
참고
Ubuntu 14.04에 GCC 4.9 설치
update-alternatives 사용법
4. RMeCab 설치
gcc가 도입되면 드디어 RMeCab을 설치한다. terminal에서 R을 시작하거나 Jupyter에서 R의 노트북을 만듭니다.
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
에서 설치. 성공했는지 확인합니다.
library(RMeCab)
RMeCabC("インストールに成功したよ!")
할 수 있었다!
Dockerfile 및 docker-compose.yml
지금까지의 작업을 정리한 Dockerfile과 docker-compose.yml 파일을 작성했다. 같은 디렉토리에이 두 파일을 넣어 docker-compose up
.
docker-compose.ymlversion: "2"
services:
jupyter_rmecab: # サービス名
container_name: Jupyter-RMeCab
build: . # 現在のディレクトリのdockerfileから構築
image: mochimo/jupyter-rmecab # buildで作るイメージ名
ports:
- "8888:8888" # ポート <host port>:<container port>
user: root # sudoのため
volumes:
- "/home/[User]/[work]:/home/jovyan/work/" # workディレクトリのマウント。[User],[work]は適宜自分のユーザー名と作業フォルダ名に変更
environment:
TZ: Asia/Tokyo
GRANT_SUDO: "yes" # sudoコマンドを使えるようにする
restart: always # 常に自動で再起動。主にOS起動時に自動起動させるため
command: start-notebook.sh --NotebookApp.token='' # コンテナ起動時の引数
DockerfileFROM jupyter/datascience-notebook
LABEL maintainer="mochimo"
USER root
# font/gcc5 インストール
RUN apt-get update && apt-get install -y \
fonts-ipaexfont \
gcc-5 \
g++-5 \
gfortran-5
# mecab インストール
RUN apt-get update && apt-get install -y mecab libmecab-dev mecab-ipadic-utf8
# gcc-5に切り替え
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10 && \
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 10
USER $NB_UID
# RMeCabのインストール
RUN R -e "install.packages(c('RMeCab'), repos='http://rmecab.jp/R', type='source')"
Reference
이 문제에 관하여(docker+Jupyter+R로 텍스트 마이닝할 수 있는 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mochimo/items/f8277bb8ad6485acdb7b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선 jupyter/datascience-notebook을 기동해 R의 노트북을 작성할 때까지는 여기 우선 Jupyter상에서 환경을 구축해 보려고 MeCab를 인스톨까지는 순서대로로 좋았지만, 막상 RMeCab를 인스톨 하려고 하면, 에러 메세지가・・・
# RMeCabをインストールしようとしたら・・・
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
# うまくいかなかった
Warning message in install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source"):
“installation of package ‘RMeCab’ had non-zero exit status”Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
좀 더 자세한 오류 내용을 보려면 Jupyter terminal에서 R을 시작하고 같은 방식으로 설치를 시도합니다.
R
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
RMeCab.cpp:59:70: error: narrowing conversion of ‘144’ from ‘int’ to ‘char’ inside { } [-Wnarrowing]
분명히 c++ 코드에서 int->char을 캐스트하지 못합니까? 오류 메시지 등으로 검색하는 경우 RMeCab은 gcc-5 환경에서 설치해야하는 것 같습니다. . 자신의 환경의 gcc는 버전 7이었다. 이것이 RMeCab 설치 실패의 원인 인 것 같습니다.
※int->char의 캐스트에 실패하는 것은 이 과 같은 현상일지도 모른다.
설치 절차
궁극적으로 성공한 것은 다음 단계입니다. gcc-5를 사용하여 RMeCab을 설치합니다.
0. 전제
이 기사 등을 참고로 sudo
사용할 수 있는 jupyter/datascience-notebook의 컨테이너가 일어
1. MeCab 설치
install - rmecab 리눅스의 설명에 따라 설치.
sudo apt update
sudo apt install mecab libmecab-dev mecab-ipadic-utf8
설치되어 있는지 확인.
mecab
インストールに成功したよ!
아래와 같은 결과가 표시되면 OK.
インストール 名詞,一般,*,*,*,*,インストール,インストール,インストール
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
成功 名詞,サ変接続,*,*,*,*,成功,セイコウ,セイコー
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
! 記号,一般,*,*,*,*,!,!,!
EOS
2. gcc-5 설치
gcc-5를 설치.
sudo apt install gcc-5
sudo apt install g++-5
sudo apt install gfortran-5
3. update-alternatives로 버전 전환
여러 gcc 버전이있는 환경에서는 update-alternatives에서 버전을 전환하고 사용 이번에는 gcc-7 <-> gcc-5의 전환이 필요.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 10
덧붙여서 등록 후
update-alternatives --config gcc
그렇다면 등록 된 버전 중에서 선택하여 전환 할 수 있습니다.
참고
Ubuntu 14.04에 GCC 4.9 설치
update-alternatives 사용법
4. RMeCab 설치
gcc가 도입되면 드디어 RMeCab을 설치한다. terminal에서 R을 시작하거나 Jupyter에서 R의 노트북을 만듭니다.
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
에서 설치. 성공했는지 확인합니다.
library(RMeCab)
RMeCabC("インストールに成功したよ!")
할 수 있었다!
Dockerfile 및 docker-compose.yml
지금까지의 작업을 정리한 Dockerfile과 docker-compose.yml 파일을 작성했다. 같은 디렉토리에이 두 파일을 넣어 docker-compose up
.
docker-compose.ymlversion: "2"
services:
jupyter_rmecab: # サービス名
container_name: Jupyter-RMeCab
build: . # 現在のディレクトリのdockerfileから構築
image: mochimo/jupyter-rmecab # buildで作るイメージ名
ports:
- "8888:8888" # ポート <host port>:<container port>
user: root # sudoのため
volumes:
- "/home/[User]/[work]:/home/jovyan/work/" # workディレクトリのマウント。[User],[work]は適宜自分のユーザー名と作業フォルダ名に変更
environment:
TZ: Asia/Tokyo
GRANT_SUDO: "yes" # sudoコマンドを使えるようにする
restart: always # 常に自動で再起動。主にOS起動時に自動起動させるため
command: start-notebook.sh --NotebookApp.token='' # コンテナ起動時の引数
DockerfileFROM jupyter/datascience-notebook
LABEL maintainer="mochimo"
USER root
# font/gcc5 インストール
RUN apt-get update && apt-get install -y \
fonts-ipaexfont \
gcc-5 \
g++-5 \
gfortran-5
# mecab インストール
RUN apt-get update && apt-get install -y mecab libmecab-dev mecab-ipadic-utf8
# gcc-5に切り替え
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10 && \
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 10
USER $NB_UID
# RMeCabのインストール
RUN R -e "install.packages(c('RMeCab'), repos='http://rmecab.jp/R', type='source')"
Reference
이 문제에 관하여(docker+Jupyter+R로 텍스트 마이닝할 수 있는 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mochimo/items/f8277bb8ad6485acdb7b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo apt update
sudo apt install mecab libmecab-dev mecab-ipadic-utf8
mecab
インストールに成功したよ!
インストール 名詞,一般,*,*,*,*,インストール,インストール,インストール
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
成功 名詞,サ変接続,*,*,*,*,成功,セイコウ,セイコー
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
! 記号,一般,*,*,*,*,!,!,!
EOS
sudo apt install gcc-5
sudo apt install g++-5
sudo apt install gfortran-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 10
update-alternatives --config gcc
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
library(RMeCab)
RMeCabC("インストールに成功したよ!")
지금까지의 작업을 정리한 Dockerfile과 docker-compose.yml 파일을 작성했다. 같은 디렉토리에이 두 파일을 넣어
docker-compose up
.docker-compose.yml
version: "2"
services:
jupyter_rmecab: # サービス名
container_name: Jupyter-RMeCab
build: . # 現在のディレクトリのdockerfileから構築
image: mochimo/jupyter-rmecab # buildで作るイメージ名
ports:
- "8888:8888" # ポート <host port>:<container port>
user: root # sudoのため
volumes:
- "/home/[User]/[work]:/home/jovyan/work/" # workディレクトリのマウント。[User],[work]は適宜自分のユーザー名と作業フォルダ名に変更
environment:
TZ: Asia/Tokyo
GRANT_SUDO: "yes" # sudoコマンドを使えるようにする
restart: always # 常に自動で再起動。主にOS起動時に自動起動させるため
command: start-notebook.sh --NotebookApp.token='' # コンテナ起動時の引数
Dockerfile
FROM jupyter/datascience-notebook
LABEL maintainer="mochimo"
USER root
# font/gcc5 インストール
RUN apt-get update && apt-get install -y \
fonts-ipaexfont \
gcc-5 \
g++-5 \
gfortran-5
# mecab インストール
RUN apt-get update && apt-get install -y mecab libmecab-dev mecab-ipadic-utf8
# gcc-5に切り替え
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10 && \
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 10
USER $NB_UID
# RMeCabのインストール
RUN R -e "install.packages(c('RMeCab'), repos='http://rmecab.jp/R', type='source')"
Reference
이 문제에 관하여(docker+Jupyter+R로 텍스트 마이닝할 수 있는 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mochimo/items/f8277bb8ad6485acdb7b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)