StoryCode

'형태소분석,Lucene,mecap,komoran,tf-idf vector'에 해당되는 글 4건

  1. KoNLPy, TF-IDF Vectorizor
  2. KOMORAN 설치
  3. Mecab Kor 사용법
  4. 기본 설치 및 테스트

KoNLPy, TF-IDF Vectorizor

형태소분석,Lucene,mecap,komoran,tf-idf vector
반응형

# 참조 : https://konlpy.org/ko/v0.5.2/install/

# 참조 : http://doc.mindscale.kr/km/unstructured/03.html

# 참조 : https://dianakang.tistory.com/48

 

형태소 분석기는 형태소를 분석해주는 프로그램이다. konlpy는 Python에서 사용할 수 있는 오픈소스 형태소 분석기로, 기존에 공개된 꼬꼬마(Kkma), 코모란(Komoran), 한나눔(Hannanum), 트위터(Twitter), 메카브(Mecab)를 한 번에 설치하고 동일한 방법으로 쓸 수 있게 해준다. (단 메카브는 윈도에서 사용할 수 없다)

 

sudo apt-get install g++ openjdk-8-jdk python3-dev python3-pip curl
python3 -m pip install --upgrade pip
python3 -m pip install konlpy
sudo apt-get install curl git
bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)
# 도커 기반일 경우
> FROM python:3

> ENV JAVA_HOME /usr/lib/jvm/java-1.7-openjdk/jre
> RUN apt-get update && apt-get install -y g++ default-jdk
> RUN pip install konlpy

> # Write left part as you want

 

 

 

# 다운로드 
https://archive.ics.uci.edu/ml/datasets/Sentiment+Labelled+Sentences
> vi amazonpkl.py
import pandas as pd

df = pd.read_csv('amazon_cells_labelled.txt', sep="\t", header=None)

content = df[0]
sentiment = df[1]

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(stop_words='english',
                        lowercase=True,
                        max_features=1000)
tdm = tfidf.fit_transform(content)
print(tfidf.get_feature_names()[-10:])

import joblib
with open('amazon.pkl', 'wb') as f:
    joblib.dump(
        {'vectorizer': tfidf, 'tdm': tdm, 'sentiment': sentiment},
        f
    )





> python amazonpkl.py
> vi amazonpklinfo.py
import joblib

with open('amazon.pkl', 'rb') as f:
    data = joblib.load(f)

locals().update(data)

count = tdm.sum(axis=0)

import pandas as pd
word_count = pd.DataFrame({
    '단어': vectorizer.get_feature_names(),
    '빈도': count.flat})

print(word_count.tail())




> python amazonpklinfo.py
반응형

'형태소분석,Lucene,mecap,komoran,tf-idf vector' 카테고리의 다른 글

KOMORAN 설치  (0) 2022.01.24
Mecab Kor 사용법  (0) 2022.01.24
기본 설치 및 테스트  (0) 2019.04.25

KOMORAN 설치

형태소분석,Lucene,mecap,komoran,tf-idf vector
반응형

# KoNLPy 를 설치하면 KOMORAN 까지 한방에 다 해결되니 아래 링크로 보자.

https://storycode.tistory.com/466

 

# 참조 : https://www.shineware.co.kr/products/komoran/#demo?utm_source=komoran-kr&utm_medium=Referral&utm_campaign=github-demo

 

# https://github.com/shineware/PyKOMORAN
pip install PyKomoran

# 혹은

git clone https://github.com/shineware/PyKOMORAN
cd PyKOMORAN/python
sudo python setup.py install

 

sudo apt install openjdk-11-jre-headless

 

> vi test.py

from PyKomoran import *

komoran = Komoran("EXP")
print(komoran.get_plain_text("KOMORAN은 한국어 형태소 분석기입니다."))
print(komoran.get_plain_text("① 대한민국은 민주공화국이다."))

komoran = Komoran("STABLE")
print(komoran.get_plain_text("KOMORAN은 한국어 형태소 분석기입니다."))
print(komoran.get_plain_text("① 대한민국은 민주공화국이다."))

> python test.py

# EXP ( = Full )
KOMORAN/SL 은/JX 한국어/NNP 형태소/NNP 분석기/NNG 이/VCP ㅂ니다/EF ./SF
①/SW 대한민국/NNP 은/JX 민주공화국/NNP 이/VCP 다/EF ./SF
# STABLE ( = Light )
KOMORAN/SL 은/JX 한국어/NNP 형태소/NNG 분석기/NNG 이/VCP ㅂ니다/EF ./SF
①/SW 대한민국/NNP 은/JX 민주/NNG 공화국/NNG 이/VCP 다/EF ./SF

 

 

반응형

'형태소분석,Lucene,mecap,komoran,tf-idf vector' 카테고리의 다른 글

KoNLPy, TF-IDF Vectorizor  (0) 2022.01.24
Mecab Kor 사용법  (0) 2022.01.24
기본 설치 및 테스트  (0) 2019.04.25

Mecab Kor 사용법

형태소분석,Lucene,mecap,komoran,tf-idf vector
반응형
tar xvfz mecab-ko-dic-2.1.1-20180720.tar.gz
cd mecab-ko-dic-2.1.1-20180720
./configure
make
sudo make install

# 참조 : https://bitbucket.org/eunjeon/mecab-ko-dic/src/master/

# 참조 : https://mondayus.tistory.com/46

> cd download

1) download 3 files

wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz
wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.1.1-20180720.tar.gz
git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git

2) mecab-0.996

tar xvfz mecab-0.996-ko-0.9.2.tar.gz
cd mecab-0.996-ko-0.9.2
./configure
make
make check
sudo make install
# sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

3) mecab-ko-dic

tar xvfz mecab-ko-dic-2.1.1-20180720.tar.gz
cd mecab-ko-dic-2.1.1-20180720
./configure
make
sudo make install
# 아래 디렉토리에 설치
/usr/local/lib/mecab/dic/mecab-ko-dic
# Jupyter 에서 사용 가능

from konlpy.tag import Mecab
mecab = Mecab()

 

4) 테스트

$ mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic
mecab-ko-dic은 MeCab을 사용하여, 한국어 형태소 분석을 하기 위한 프로젝트입니다.
mecab    SL,*,*,*,*,*,*,*
-    SY,*,*,*,*,*,*,*
ko    SL,*,*,*,*,*,*,*
-    SY,*,*,*,*,*,*,*
dic    SL,*,*,*,*,*,*,*
은    JX,*,T,은,*,*,*,*
MeCab    SL,*,*,*,*,*,*,*
을    JKO,*,T,을,*,*,*,*
사용    NNG,행위,T,사용,*,*,*,*
하    XSV,*,F,하,*,*,*,*
여    EC,*,F,여,*,*,*,*
,    SC,*,*,*,*,*,*,*
한국어    NNG,*,F,한국어,Compound,*,*,한국/NNG/*+어/NNG/*
형태소    NNG,*,F,형태소,Compound,*,*,형태/NNG/*+소/NNG/*
분석    NNG,행위,T,분석,*,*,*,*
을    JKO,*,T,을,*,*,*,*
하    VV,*,F,하,*,*,*,*
기    ETN,*,F,기,*,*,*,*
위한    VV+ETM,*,T,위한,Inflect,VV,ETM,위하/VV/*+ᆫ/ETM/*
프로젝트    NNG,*,F,프로젝트,*,*,*,*
입니다    VCP+EF,*,F,입니다,Inflect,VCP,EF,이/VCP/*+ᄇ니다/EF/*
.    SF,*,*,*,*,*,*,*
EOS

 

5) 기타 확인

품사확인)

https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit#gid=589544265

 

6) mecab python

cd mecab-python-0.996
python setup.py build
su
# 이제 Jupyter 에서 정상적으로 Mecab 사용 가능

from konlpy.tag import Mecab
mecab = Mecab()

 

 

# 추가

# 사용자 사전 등록 및 우선순위 높이기

참고 : https://bitbucket.org/eunjeon/mecab-ko-dic/src/df15a487444d88565ea18f8250330276497cc9b9/final/user-dic/README.md

참고 : https://kugancity.tistory.com/entry/mecab에-사용자사전기분석-추가하기

- 표층형 : 단어명
- 1785,3543,4267 : 좌문맥ID, 우문맥ID, 단어비용 (자동 생성 처리로 입력)
- 품사태그 : 품사 입력 (mecab-ko-dic 품사 태그를 참조하여 입력)
- 의미분류 : 인명 또는 지명 또는 *
- F : 받침유무 (원 단어의 끝 글자 받침 유무로 T, F 입력)
- 읽기 : 발음 (원 단어의 발음을 입력)
- 타입 : inflected, compound, Preanalysis, *  
- 첫번째 품사, 마지막 품사 : 기분석으로 나눠지는 토큰에 대한 각 품사 입력 (mecab-ko-dic 품사 태그를 참조하여 입력)
- 원형 : 토큰 들로 나눠지는 부분 +로 입력 ( 각 토큰 : 표층형/품사태그/의미분류 ) 
- 인덱스표현  : 토큰 들로 나눠지는 부분 +로 입력 ( 각 토큰:  표층형/품사태그/의미부류/PositionIncrementAttribute/PositionLengthAttribute) 

1. 사전 등록

 - mecab-ko-dic 설치 위치로 가서 nnp.csv에 사용자 사전 입력

>> cd ~/mecab-ko-dic-2.1.1-20180720/user-dic
>> vi nnp.csv

다음 형태로 입력
구르미그린달빛,0,0,0,NNP,*,T,구르미그린달빛,*,*,*,*
고프로,0,0,0,NNP,*,F,고프로,*,*,*,*
썸즈업,0,0,0,NNP,*,T,썸즈업,*,*,*,*
썬팍,0,0,0,NNP,*,T,썬팍,*,*,*,*

 - 적용 전 테스트

 - 사전 적용

   tools>> ./add-userdic.sh

   mecab-ko-dic-2.1.1-20180720 >> make install

(base) ➜  mecab-ko-dic-2.1.1-20180720 cd tools
(base) ➜  tools ./add-userdic.sh
(base) ➜  mecab-ko-dic-2.1.1-20180720 make install
generating userdic...
nnp.csv
.
.
.
emitting matrix      : 100% |###########################################|

done!
echo To enable dictionary, rewrite /usr/local/etc/mecabrc as \"dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic\"
To enable dictionary, rewrite /usr/local/etc/mecabrc as "dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic"
(base) ➜  tools

 - 사전 적용 후 테스트

  사전은 적용 되었지만 등록한 단어의 우선순위(단어비용)가 낮아서, 원하지 않는 모양으로 분해 되는 것을 확인함. (단어비용을 낮추면 검색 우선순위가 높아짐)
  현재 적용된 단어 비용

              구르미그린달빛의 단어비용 : 2953
              구르/미/그린/달빛 단어비용 : 2679/3464/1247/2215

2. 우선 순위 적용 (단어비용 낮추기)

 - mecab-ko-dic-2.1.1-20180720 >> vi user-nnp.csv

 - 2953 → 0 변경 후 저장

 - 변경 사항 반영
    mecab-ko-dic-2.1.1-20180720 >> sudo make clean
    mecab-ko-dic-2.1.1-20180720 >> sudo make install

 - 결과 확인

 

반응형

'형태소분석,Lucene,mecap,komoran,tf-idf vector' 카테고리의 다른 글

KoNLPy, TF-IDF Vectorizor  (0) 2022.01.24
KOMORAN 설치  (0) 2022.01.24
기본 설치 및 테스트  (0) 2019.04.25

기본 설치 및 테스트

형태소분석,Lucene,mecap,komoran,tf-idf vector
반응형

버전 8.0 기준)

1) Download
URL=http://archive.apache.org/dist/lucene/java/

 

2) lucene-core-8.0.0.jarlucene-demo-8.0.0.jarlucene-queryparser-8.0.0.jar

위치 확인

 

3) 샘플 소스 다운로드

https://lucene.apache.org/core/8_0_0/demo/overview-summary.html#Location_of_the_source

IndexFiles.java, SearchFiles.java 다운로드

 

4) Compile

"C:\Program Files\java\jdk1.8.0_141\bin\javac" -d . -classpath .;.\lucene-core-8.0.0.jar;.\lucene-demo-8.0.0.jar;.\lucene-queryparser-8.0.0.jar *.java

 

5) Run

- 폴더 docs, index 생성

- docs 에 아무 텍스트 파일 붙여넣기

- 실행 (index 폴더에 결과됨)

  "C:\Program Files\java\jdk1.8.0_141\bin\java" -classpath .;.\lucene-core-8.0.0.jar;.\lucene-demo-8.0.0.jar;.\lucene-queryparser-8.0.0.jar org.apache.lucene.demo.IndexFiles -index index -docs docs

- 실행 ( 입력 대기 상태가 되는데, 텍스트 파일의 아무 단어나 입력하면 파일을 찾아 줌 )

  "C:\Program Files\java\jdk1.8.0_141\bin\java" -classpath .;.\lucene-core-8.0.0.jar;.\lucene-demo-8.0.0.jar;.\lucene-queryparser-8.0.0.jar org.apache.lucene.demo.SearchFiles

 

반응형

'형태소분석,Lucene,mecap,komoran,tf-idf vector' 카테고리의 다른 글

KoNLPy, TF-IDF Vectorizor  (0) 2022.01.24
KOMORAN 설치  (0) 2022.01.24
Mecab Kor 사용법  (0) 2022.01.24