Splunk에서 MeCab을 사용한 형태소 분석
MeCab이란?
MeCab은 오픈 소스의 형태소 해석 엔진으로, 나라 첨단 과학 기술 대학원 대학 출신, 현 Google 소프트웨어 엔지니어로 Google 일본어 입력 개발자의 한 사람인 쿠도 타쿠에 의해 개발되고 있다. - wikipedia에서 -
이 Blog등이 구조 등 자세하게 써 있어 알기 쉬웠습니다만, 일본어 환경에 있어서의 형태소 해석으로서는 매우 유명한 형태소 해석 엔진입니다.
htps : // / ch ぃふぇ. 코오 k 파 d. 코m/엔트리/2016/05/11/170000
Splunk에 어떻게 구현합니까?
기본적으로 Splunk에는 MeCab 분석 엔진이 없으므로 별도로 설치해야 합니다. 또한 파이썬에서 실행할 수 있도록 사용자 정의 명령으로 스플랭크에 구현해야합니다.
이러한 작업이 번거롭다면 Splunk에 캡처하기 전에 MeCab을 실행하여 결과를 캡처하는 등이 필요하지만 이번에는 열심히 구현하고 싶습니다.
구현의 대략적인 흐름
1. MeCab 설치
참고 사이트
htps : // 이 m / 쇼우 c 레테 / ms / c7864 아 5200238 d8678 아
## Groonga レポジトリの追加
$ sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
$ sudo yum makecache
## MeCab や辞書のインストール
$ sudo yum -y install mecab mecab-ipadic
$ sudo yum -y install mecab-devel
## python の Mecab パッケージをインストール
$ pip install mecab-python3
설치가 안전하게 이루어지면 먼저 콘솔에서 MeCab을 사용해보십시오.
다음과 같은 샘플 코드를 파이썬으로 실행해 보겠습니다.
mecab-sample.py
# -*- coding: utf-8 -*-
import sys
import MeCab
# 今回は、 wakati を使っております。品詞などは表示されませんが、あとで加工しやすいように表示されます。
m = MeCab.Tagger("-Owakati")
print m.parse("こんにちは皆さん。今日はいい天気ですね")
실행 확인
$ python mecab-sample.py
こんにちは 皆さん 。 今日 は いい 天気 です ね
## わかりずらいかもしれませんが、単語ごとに分解されて、スペースで区切られております。
이제 파이썬에서도 실행할 수 있습니다.
2. Splunk의 사용자 지정 명령으로 구현
2.1 Splunk SDK for Python 설치
2.2 사용자 정의 명령 작성
작성에 있어서 이쪽을 참고로 했습니다.
맞춤 검색 명령을 만드는 방법(Splunk)
h tps:// 퀵했다. 작은 m/명이다/있어 MS/c5 아 2985882C4b3f30 그림 31
Splunk 실행 결과를 Python을 사용하여 처리하고 파일에 저장
htps : // 코 m / 미가다 / ms / 476139 아카 d9293
mecab.py
# -*- coding: utf-8 -*-
import splunk.Intersplunk
import sys
import MeCab
results, dummyresults, settings = splunk.Intersplunk.getOrganizedResults()
m = MeCab.Tagger("-Owakati")
for result in results:
word = m.parse(result['text'])
result['mecab'] = word
splunk.Intersplunk.outputResults(results)
이 명령 전에 실행한 결과를 splunk.Intersplunk.getOrganizedResults() 함수로 가져올 수 있습니다. 그 때 데이터 포맷은 사전 형식[{'text':'Alert dayo'}]이므로 주의해 주세요.
마지막으로 splunk.Intersplunk.outputResults(results)로 출력 결과를 SPL로 되돌립니다.
방금 만든 명령을/opt/splunk/etc/apps/search/bin/에 넣고/opt/splunk/etc/apps/search/local/commands.conf, authorize.conf 등을 편집합니다.
commands.conf
[mecab]
filename = mecab.py
authorize.conf
[capability::run_script_mecab]
[role_admin]
run_script_mecab = enabled
3. SPL에서 실행해보기
이제 마침내 Splunk에서 Mecab을 사용하여 분석 엔진을 실행할 수 있습니다.
빨리 시도해 봅시다.
source=slack*
| table text
| run mecab
다음에 단어마다 출현 횟수를 카운트해 보겠습니다.
source=slack*
| table text
| run mecab
| makemv mecab # スペース区切りをベースにマルチバリューに変換
| mvexpand mecab # マルチバリューをイベント単位に変換
| stats count by mecab # 単語ごとにカウントを計算
| where len(mecab) > 1 #あまり意味のない単語を省くため一文字のものを削除
워드 클라우드 그래프를 사용하여 시각화
htps : // sp ㎅ k 바세. sp ㎅ k. 코 m/아 p/3212/
요약
이번은 일본어 형태소 해석으로서 유명한 MeCab를 사용해 분해해 보았습니다.
다른 옵션을 사용하거나 하면 더 정밀도를 높일 수 있었다고 생각합니다만, 이번의 데이터에서는 결과적으로는 정규 표현으로 실시한 전회의 것과 별로 변하지 않았습니다. 하지만 Splunk에서 MeCab을 사용할 수 있게 되었기 때문에 조금은 해석하기 쉬워졌다(?)일지도.
Reference
이 문제에 관하여(Splunk에서 MeCab을 사용한 형태소 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/maroon/items/c590deadd57de0dece47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)