728x90
반응형

안녕하세요!

오늘은 한국어 데이터 분석을 위해 꼭 필요한 Konlpy(코엔엘파이) 라이브러리에 대해서 포스팅 하겠습니다.

 

  • Konlpy 란?

한국어 자연어 처리를 위한 파이썬 라이브러리 입니다.

 

  • Konlpy의 특징

Konlpy은 다양한 한국어 형태소 분석기를 지원하기 때문에 같은 문장을 다른 방식으로 분석을 하는 것이 가능합니다.

※ Konlpy는 설치 및 사용 환경을 설정하는 과정이 조금 복잡하기 때문에 따로 포스팅을 진행하도록 하겠습니다!

 

  • Konlpy이 제공하는 형태소 분석기 종류

Konlpy은 아래 5가지 형태소 분석기를 제공합니다.

  1. Kkma
  2. Komoran
  3. Hannaum
  4. Okt (구 Twittrer)
  5. Mecab: 일본어 형태소 분석기를 한국어로 변경한 분석기로, 세종 말뭉치로 만들어진 CSV 형태의 사전 (Windows에서 잘 지원이 되지 않음)

Mecab은 Windows에서 잘 지원이 되지 않기 때문에 나머지 4개의 형태소 분석기만 비교를 해보도록 하겠습니다!

 

  • Kkma

서울대 지능형 데이터 시스템 연구실에서 개발한 형태소 분석기 입니다.

비교적 정확한 품사를 구분하는 형태소 분석기로 띄어쓰기 오류에 강하고, 다의어 처리에 효과적이지만, 단어의 수가 증가할수록 분석을 진행하는 시간이 가장 크게 느려지는게 특징입니다.

Kkma는 4가지의 함수를 제공합니다.

아래는 4가지 함수와 코드 예시입니다.

from konlpy.tag import Kkma

kkma = Kkma()
text = "꼬꼬마 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = kkma.morphs(text)

Output: ['꼬꼬마', '형태소', '분석', '기', '를', '사용', '하', '어', '보', 'ㅂ시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = kkma.nouns(text)

Output: ['꼬꼬마', '형태소', '분석', '분석기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = kkma.pos(text)

Output: [('꼬꼬마', 'NNG'), ('형태소', 'NNG'), ('분석', 'NNG'), ('기', 'NNG'), ('를', 'JKO'), ('사용', 'NNG'), ('하', 'XSV'), ('어', 'ECS'), ('보', 'VXV'), ('ㅂ시다', 'EFN'), ('.', 'SF')]

 

  • sentences : 여러 문장으로 이루어진 텍스트를 문장 단위로 추출
text = "꼬꼬마 형태소 분석기를 사용해 봅시다. 이것은 간단한 예시입니다."
sentences_result = kkma.sentences(text)

Output: ['꼬꼬마 형태소 분석기를 사용해 봅시다.', '이것은 간단한 예시입니다.']

 

 

  • Komoran

Shineware에서 개발한 형태소 분석기 입니다.

대용량 말뭉치를 학습하여 품사 태깅에 높은 정확도를 보이며, 빠른 분석 속도높은 성능을 보유하고 있습니다.

Komoran은 3가지의 함수를 제공합니다.

아래는 3가지 함수와 코드 예시입니다.

from konlpy.tag import Komoran

komoran = Komoran()
text = "코모란 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = komoran.morphs(text)

Output: ['코모란', '형태소', '분석', '기', '를', '사용', '하', '아', '보', 'ㅂ시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = komoran.nouns(text)

Output: ['코모란', '형태소', '분석', '기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = komoran.pos(text)

Output: [('코모란', 'NNP'), ('형태소', 'NNG'), ('분석', 'NNG'), ('기', 'NNG'), ('를', 'JKO'), ('사용', 'NNG'), ('하', 'XSV'), ('아', 'EC'), ('보', 'VX'), ('ㅂ시다', 'EF'), ('.', 'SF')]

 

  • Hannaum

국립 국어원에서 개발한 형태소 분석기 입니다.

복합 명사를 적절하게 처리하고, 복잡한 구조의 문장에서도 안정적으로 형태소 분석을 수행합니다.

Hannaum은 3가지의 함수를 제공합니다.

아래는 3가지 함수와 코드 예시입니다.

from konlpy.tag import Hannanum

hannanum = Hannanum()
text = "한나눔 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = hannanum.morphs(text)

Output: ['한나눔', '형태소', '분석', '기', '를', '사용', '하', '어', '보', 'ㅂ시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = hannanum.nouns(text)

Output: ['한나눔', '형태소', '분석', '기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = hannanum.pos(text)

Output: [('한나눔', 'N'), ('형태소', 'N'), ('분석', 'N'), ('기', 'N'), ('를', 'J'), ('사용', 'N'), ('하', 'X'), ('어', 'E'), ('보', 'P'), ('ㅂ시다', 'E'), ('.', 'S')]

 

 

  • Okt

Twitter에서 개발한 형태소 분석기 입니다.

복합 명사 분석에 우수하며, 속도가 빠르고 경량화된 형태로 제공되어 다양한 환경에서 사용할 수 있습니다.

Okt는 4가지의 함수를 제공합니다.

아래는 4가지 함수와 코드 예시입니다.

from konlpy.tag import Okt

okt = Okt()
text = "Okt 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = okt.morphs(text)

Output: ['Okt', '형태소', '분석기', '를', '사용', '해', '봅시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = okt.nouns(text)

Output: ['Okt', '형태소', '분석기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = okt.pos(text)

Output: [('Okt', 'Alpha'), ('형태소', 'Noun'), ('분석기', 'Noun'), ('를', 'Josa'), ('사용', 'Noun'), ('해', 'Verb'), ('봅시다', 'Verb'), ('.', 'Punctuation')]

 

  • phrases: 문장을 어구 단위로 추출
phrases_result = okt.phrases(text)

Output: ['Okt', 'Okt 형태소', '형태소', '분석기', '사용', 'Okt 형태소 분석기', '분석']

 

Konlpy를 활용하여 한국어 데이터 기반 워드 클라우드, 토픽 모델링 데이터 분석을 진행한 예시는 아래 페이지에서 확인하실 수 있습니다!

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80%EB%A1%9C-%EC%9B%8C%EB%93%9C%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0-feat%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%89%B4%EC%8A%A4-%ED%81%AC%EB%A1%A4%EB%A7%81

 

[데이터 분석] 한글로 워드클라우드 만들기 (feat.네이버 뉴스 크롤링)

안녕하세요. 오늘은 크롤링 데이터로 워드클라우드(wordcloud)를 만드는 방법에 대해 포스팅 하겠습니다. 크롤링 데이터는 네이버 뉴스 크롤링을 사용할 예정입니다! 네이버 뉴스 크롤링 과정이

yhj9855.com

 

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%A0%ED%94%BD-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%A7%84%ED%96%89%ED%95%98%EA%B8%B0

 

[데이터 분석] 한글 데이터 토픽 모델링 진행하기

안녕하세요! 오늘은 한글 데이터로 토픽 모델링(topic modeling)을 하는 방법에 대해 포스팅 하겠습니다. 한글 데이터는 네이버 뉴스 크롤링 데이터를 사용할 예정입니다. 네이버 뉴스 크롤링 과정

yhj9855.com

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다!

★읽어주셔서 감사합니★

728x90
반응형
728x90
반응형

안녕하세요! 오늘은 데이터 분석에서 자주 활용하는 주피터 노트북(Jupyter Notebook) 을 사용하는 방법에 대해서 포스팅 하겠습니다.

 

  • 주피터 노트북이란?

대화형 컴퓨팅 환경을 제공하는 오픈 소스 웹 기반 플랫폼입니다.

 

  • 주피터 노트북의 장점

1. 주피터 노트북은 대화형 인터페이스를 제공하고 있기 때문에 결과를 즉시 확인할 수 있습니다.

※ 사진 속 예시는 제가 작성한 웹툰 데이터 분석 코드의 일부입니다.

 

2. 주피터 노트북은 시각화 및 그래프를 지원하고 있기 때문에 노트북에 바로 결과가 표시되어 시각적으로 확인하기 쉽습니다.

※ 사진 속 예시는 제가 작성한 웹툰 데이터 분석 코드의 일부입니다.

 

3. 주피터 노트북은 다른 사용자와 공유하기 쉽습니다.

 기본적인 파일 형태인 ipynb는 GitHub 등의 협업 플랫폼에서 공유가 가능하기 때문에 협업하기 어렵지 않습니다.

또한 HTML 파일로 내보내기가 가능하기 때문에 결과물과 함께 공유가 가능하며, HTML 파일이기 때문에 다른 사용자가 열어보기 쉽습니다.

 

 

  • 주피터 노트북의 사용처

주피터 노트북은 데이터 분석 라이브러리를 모두 사용할 수 있고, 분석 후 시각화 작업이 수월하기 때문에 데이터 분석에서 많이 활용되고 있습니다.

또한 머신 러닝, 딥러닝 모델 학습이 가능하기 때문에 해당 분야에서도 자주 활용하고 있습니다.

 

  • 주피터 노트북 설치 및 실행하기

파이썬이 설치되신 분들은 아주 쉽게 주피터 노트북을 설치할 수 있습니다!

설치 및 실행 과정은 아래와 같습니다.

 

1. cmd 창을 여신 후에 pip install jupyter notebook 을 실행해주시면 됩니다.

※ cmd 창은 윈도우 검색에서 cmd라고 검색하시면 나오는 명령 프롬포트를 의미합니다.

 

2. 주피터 노트북을 실행하고자 하는 폴더로 이동합니다.

주피터 노트북은 같은 폴더에 함께 있는 파일만 인식하는 경우가 많기 때문에 폴더를 잘 선택해야 합니다.

 

3. 폴더의 빈 공간에 Shift+마우스 우클릭을 실행한 후, Power Shell 창을 열어줍니다.

※ 높은 버전의 Window에서는 '더 많은 옵션 표시'를 누르면 Power Shell 창 열기 버튼이 나타납니다.

4. Power Shell 창에 jupyter notebook 을 입력 후 실행해주시면 됩니다.

cmd에서 바로 실행하는 경우도 있는데, cmd보다 Power Shell의 기능이 더 강력하고 확장성이 뛰어나기 때문에 Power Shell로 실행하시는 것을 추천합니다!

 

5. 자동으로 주피터 노트북과 연결된 인터넷 창이 뜨면 실행 완료입니다!

만약 자동으로 연결된 인터넷 창이 뜨지 않는다면, Power Shell 창에 나와있는 인터넷 주소를 복사하여 입력하시면 됩니다.

 

 

  • 주피터 노트북에 코드 작성하기

이제 주피터 노트북을 실행하였으니, 코드를 작성해보도록 하겠습니다.

저는 보통 Python(파이썬) 코딩을 진행합니다만, R과 같이 다른 프로그래밍 언어도 사용가능합니다!

하지만 이 글에서는 파이썬 코드를 작성하는 법만 다루도록 하겠습니다.

주피터 노트북에서 파이썬 코드를 작성하는 방법은 아래와 같습니다.

 

1. 'New' 버튼을 클릭하여 파이썬 코드를 작성할 파일을 생성한다.

파일의 이름은 기본적으로 Untitled으로 생성되기 때문에 파일의 이름은 변경해주셔야 합니다.

※ Untitled을 더블 클릭하면 이름을 바로 변경할 수 있습니다.

2. 코드 셀에 원하는 코드를 작성해줍니다.

주피터 노트북은 기본적으로 코드를 실행하는 코드 셀을 제공해주고 있기 때문에 코드를 바로 작성해주시면 됩니다!

만약 코드가 아닌 일반 텍스트로 작성하고 싶은 경우에는 'm' 단축키를 누르거나, 상단의 'Code'를 'Markdown'으로 변경하여 코드 셀을 텍스트 셀로 변환해주시면 됩니다.

 

3. 코드가 작성 완료된 셀을 실행시켜줍니다.

코드 셀을 실행하는 방법은 총 3가지 방법이 있습니다.

  1. Ctrl+Enter: 현재의 코드 셀만 실행을 하고, 새로운 코드 셀을 추가하지 않습니다.
  2. 주피터 노트북의 실행 키를 누르는 방법: 현재의 코드 셀만 실행을 하고, 새로운 코드 셀을 추가합니다.
    ※ ▶Run 버튼이 실행 키 입니다.
  3. Shift+Enter: 현재의 코드 셀만 실행을 하고, 새로운 코드 셀을 추가합니다.

▶▶ 이렇게 생긴 버튼을 누르게 되면 처음 코드 셀부터 마지막 코드 셀까지 순차적으로 실행이 됩니다.

실행된 순서는 In [ ]에서 [ ] 안의 숫자로 확인할 수 있고, 굳이 순서대로가 아닌 제가 원하는 셀만 실행시킬 수 있기 때문에 실행 순서를 잘 이용하면 코드를 효율적으로 작성할 수 있습니다!

 

4. 완성된 코드 저장합니다.

주피터 노트북에 코드를 모두 작성했다면, Ctrl+s 단축키를 사용하여 저장해주면 됩니다.

주피터 노트북은 어느 정도 실시간 저장이 보장되지만, 저장하는 습관 길러두시는 편이 좋습니다!

저장된 파일은 .ipynb 라는 확장자를 가지는데요.

더블 클릭으로 여는 것은 조금 어렵고, 주피터 노트북에서 열어보시거나 Github에 올려서 확인하실 수 있습니다!

 

주피터 노트북은 활용을 잘하면 정말 유용한 코드 플랫폼이기 때문에 사용법을 익혀두시는 걸 정말 추천드립니다!

 

제가 주피터 노트북을 활용하여 워드 클라우드, 토픽 모델링 데이터 분석을 진행한 예시는 아래 페이지에서 확인하실 수 있습니다!

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80%EB%A1%9C-%EC%9B%8C%EB%93%9C%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0-feat%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%89%B4%EC%8A%A4-%ED%81%AC%EB%A1%A4%EB%A7%81

 

[데이터 분석] 한글로 워드클라우드 만들기 (feat.네이버 뉴스 크롤링)

안녕하세요. 오늘은 크롤링 데이터로 워드클라우드(wordcloud)를 만드는 방법에 대해 포스팅 하겠습니다. 크롤링 데이터는 네이버 뉴스 크롤링을 사용할 예정입니다! 네이버 뉴스 크롤링 과정이

yhj9855.com

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%A0%ED%94%BD-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%A7%84%ED%96%89%ED%95%98%EA%B8%B0

 

[데이터 분석] 한글 데이터 토픽 모델링 진행하기

안녕하세요! 오늘은 한글 데이터로 토픽 모델링(topic modeling)을 하는 방법에 대해 포스팅 하겠습니다. 한글 데이터는 네이버 뉴스 크롤링 데이터를 사용할 예정입니다. 네이버 뉴스 크롤링 과정

yhj9855.com

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니다★

 

728x90
반응형

+ Recent posts