소소한 컴퓨터 이야기

[Elastic Search] 트윗 실시간 데이터 수집, 분석 (위치 정보 사용)

by Cori

개요

Twitter Input Plugin을 통해 수집한 트윗들은 geo data를 포함하고 있지 않아, re-indexing을 통해 geo data를 

가져오도록 설정하는 방법에 대해 다룬다.

 

* 해당 포스팅은 다음 내용을 참고하여 작성하였다. 

 

A DIY Twitter Tracking Tool With Elastic Stack

Knowing that Australians are coming out of a second wave of the COVID-19 pandemic 👍, while the rest of the world goes into a new one 👎…

medium.com

 

구현

1. OpenNLP 설치

# elasticsearch -> bin 폴더로 이동 후 실행 (Windows)
elasticsearch-plugin.bat install https://github.com/spinscale/elasticsearch-ingest-opennlp/releases/download/7.14.1.1/ingest-opennlp-7.14.1.1.zip

https://github.com/spinscale/elasticsearch-ingest-opennlp

 

GitHub - spinscale/elasticsearch-ingest-opennlp: An Elasticsearch ingest processor to do named entity extraction using Apache Op

An Elasticsearch ingest processor to do named entity extraction using Apache OpenNLP - GitHub - spinscale/elasticsearch-ingest-opennlp: An Elasticsearch ingest processor to do named entity extracti...

github.com

1차 시도 실패  - Java 8 제거, 16 설치하기

ingest-opennlp를 설치하기 위해서는 Java 16이 필요한데, Java 8이 깔려있다. Java 16을 설치해보자. 

기존 버전을 지우고, 16 버전 설치를 완료했다. 

 

2차 시도 성공

예에

우리가 Elastic Search 6.5.2 버전을 사용하고 있다면, 위의 설치가 끝난 후 NER 모델을 sourceforge에서 다운받아야 한다.

# elasticsearch -> bin -> ingest-opennnlp 폴더로 이동 후 실행
download-models.bat

완료

이제 얼마 안 남았다. 다운받은 모델들을 사용하기 위해, elasticsearch의 yml 파일을 수정해주자. 파일을 열고, 맨 마지막에 다음 3줄을 추가한다. 

ingest.opennlp.model.file.persons: en-ner-persons.bin
ingest.opennlp.model.file.dates: en-ner-dates.bin
ingest.opennlp.model.file.locations: en-ner-locations.bin

이제 elasticsearch와 kibana (Dev Tools)를 실행하고, 다음을 차례대로 수행한다.

· Step 1: Pipeline 설정 

· Step 2: Pipeline 설정 

· Step 3: 설정 정보 확인 

locations, dates, persons 필드가 있는 것을 확인하였다. 이로써 OpenNLP 세팅은 끝 !! ㅎㅎ (힘들어) 

 

2. ReIndexing

OpenNLP plugin을 이용한 기본적인 NER 모델은 사람, 날짜, 위치 객체를 기본적으로 가지고 있다. Kibana Dev Tool에서 다음 3단계를 수행하여, 이러한 정보를 사용할 수 있다.

 

1) 새로운 인덱스 생성 (netflix-reindexed)

2) openpipeline 구성

3) API reindexing

* 만약에 reindexing하는 데이터셋의 크기가 커서 timeout error가 걸린다면 wait_for_completion 파라미터를 false로 설정하자.

 

3. Reindexed된 데이터 조회

0) Index Pattern 생성

일단 생성해 봄 

 

1) Discover

생성한 인덱스 패턴을 통해 데이터를 조회해보았는데, 원하는 데이터 값은 들어있지 않았다 ㅜㅡㅜ

 

* 내가 원하던 예상 그림

내꺼

그래도 이왕 시작한거, 끝까지 해보자. 

블로그의 정보

코딩하는 오리

Cori

활동하기