• 검색 결과가 없습니다.

환경 텍스트 분석 알고리즘: 텍스트 정보추출

2022년에는 환경 텍스트 분석 알고리즘 중 환경 텍스트 정보추출 알고리즘의 주기적 발신 기능 점검 및 뉴스레터 양식 개발에 주력한다. 본 연구에서 개발한 환경 텍스트 분석 알고리즘은 환경 텍스트 정보추출 알고리즘과 환경 SNS 감성분석 알고리즘의 2가지로 대 별된다. 환경 텍스트 정보추출 알고리즘은 환경정책 수요자의 관심을 전달하는 환경뉴스와 환경정책 공급자의 관심을 전달하는 환경부 보도자료 및 e-환경뉴스의 텍스트 정보를 추출 하여 상호 비교할 수 있는 형태로 전달하는 기능을 수행하고, 환경 SNS 감성분석 알고리즘 은 환경 관련 소셜미디어 텍스트의 감성을 판별하는 기능을 수행한다. 이 중 2022년 현재 상대적으로 주기적 정보생산이 용이한 알고리즘은 환경 텍스트 정보추출 알고리즘이다.

환경 텍스트 정보추출 알고리즘은 다시 키워드 분석 알고리즘과 주제추출 알고리즘으로 나눌 수 있다. 환경 텍스트 정보추출 알고리즘은 환경정책 수요자의 관심을 전달하는 텍스 트 자료로 NAVER의 환경뉴스를 사용하고, 환경정책 공급자의 관심을 전달하는 텍스트 자료로 환경부 보도자료 및 e-환경뉴스를 사용한다. 키워드 분석 알고리즘은 이 2가지 텍스 트 자료의 키워드 추출, 키워드 절대빈도 및 TF_IDF 비교, 키워드 네트워크 추출 작업을 수행한다. 그리고 주제추출 알고리즘은 2가지 텍스트 자료에 LDA 분석을 수행하여 주제를 추출하고 각 주제를 대표하는 키워드를 추출한다.

2022년 7월 현재 환경 텍스트 정보추출 알고리즘은 입력자료 수집 - 입력자료 전처리 - 분석 알고리즘 구동 - 결과 도출의 4단계에 걸쳐서 자동화가 완성되어 있다. 텍스트 자료 는 1일 2회 수집하고 있으며, 수집된 자료는 자동화된 전처리 과정을 거쳐서 키워드 분석 및 주제 분석에 적합한 형태로 가공된다. 연구자는 텍스트를 문서 발행 기간에 따라 분류하 여 텍스트 분석을 수행할 수 있고, 결과를 저장하여 해석할 수 있다.

환경 텍스트 정보추출 알고리즘 구동 결과는 두 가지 텍스트 자료의 키워드 분포, 키워드 네트워크, 문서 주제, 주제별 키워드이다. 이들을 관찰하면 환경정책 수요자의 관심을 파악 할 수 있고, 이를 환경정책 공급자의 관심과 비교하여 정책 공급자들의 대응에 시의성이 있는지의 여부를 점검할 수 있다. 단, 정책 수요자의 관심 파악 및 정책 수요자 관심사와 정책 공급자 관심사의 시기적 조응 여부에 대한 판단은 연구자의 몫이다.

제5장 환경 빅데이터 플랫폼 뉴스레터 개발 ∣ 67

이를 고려하여 환경 텍스트 정보추출 알고리즘 관련 뉴스레터는 분석결과를 재생하는 부분과 분석결과에 대한 해석을 제공하는 부분으로 구성하였다. 분석결과를 재생하는 부분 은 정보추출 알고리즘에서 추출된 결과를 뉴스레터 내용에 반영하는 기능을 수행한다.

2022년 4월 현재 뉴스레터에서 재생되는 알고리즘 추출 정보는 키워드의 절대빈도, 키워드 의 TF_IDF 값, 키워드 네트워크이다. 각각의 분석결과를 서술하는 부분의 아래에는 해당 분석결과에 대한 해석이 수록된다.

예를 들어 <그림 5-1>은 환경 텍스트 정보추출 알고리즘 분석결과를 소개하는 뉴스레터 에서 2019년 3월 25일부터 2019년 4월 1일까지 환경 텍스트에서 TF_IDF 값이 높은 키워 드 20개를 선정하여 비교한 결과를 서술하는 부분을 나타낸다. <그림 5-1>에서 '분석결과 재생'에 해당하는 그래프는 알고리즘에서 추출한 TF_IDF 값을 R 프로그램 언어의 ggplot2 패키지를 이용해서 생성한 막대그래프이다. 이 그래프는 표본을 바꾸어 TF_IDF 값이 변경 될 경우 연구자가 변경된 TF_IDF 값을 정해진 경로에 파일로 저장하면 변경된 값을 반영하 여 조정된다. 반면 '분석결과 해석'에 해당하는 텍스트는 그래프에 대한 연구자의 해석이고, 매번 그래프가 조정될 때마다 연구자가 내용을 그에 따라 변경해야 한다.

구체적으로 2022년 10월 현재 환경 텍스트 분석 알고리즘 관련 뉴스레터는 R 마크다운 (R markdown) 언어로 작성되어 textanalysis_0824.Rmd 파일로 저장되어 있다. R 마크 다운 언어는 R 프로그래밍 결과를 재생하는 code 부분과 연구자가 작성하는 텍스트 부분으 로 구성된다. <그림 5-1>의 '분석결과 재생' 부분은 code에 의해 생성된 그래프이고, <그림 5-1>의 '분석결과 해설' 부분은 연구자가 작성한 텍스트이다. <표 5-1>은 sample_0428_2.rmd 파일에서 <그림 5-1>의 '분석결과 재생' 부분과 '분석결과 해설' 부분을 구현하는 code와 텍스트 이다. sample_0428_2.rmd 파일을 컴파일하면 코드로 작성된 부분은 다시 구동되어 '분석 결과 재생' 부분을 갱신하게 된다. textanalysis_0824.Rmd 파일을 컴파일한 결과는 textanalysis_0824.html이라는 이름의 html 파일과 textanalysis_0824.pdf라는 이름의 pdf 파일로 저장된다.

자료: 저자 작성.

<그림 5-1> 환경 텍스트 정보추출 알고리즘 뉴스레터 구성(예시)

구분 파일 내용

분석결과 재생

```{r readdata, echo=FALSE}

NAVER_TF=read.csv("./Data_newsletter/2019-04-01_7_NN_TF.txt", encoding="UTF-8",

row.names=NULL, header=FALSE)[,-1]

NAVER_TFIDF=read.csv("./Data_newsletter/2019-04-01_7_NN_norm_TF.txt", encoding="UTF-8",

row.names=NULL, header=FALSE)[,-1]

ME_TF=read.csv("./Data_newsletter/2019-04-01_7_ME_TF.txt", encoding="UTF-8",

row.names=NULL, header=FALSE)[,-1]

ME_TFIDF=read.csv("./Data_newsletter/2019-04-01_7_ME_norm_TF.txt", encoding="UTF-8",

row.names=NULL, header=FALSE)[,-1]

<표 5-1> 환경 텍스트 정보추출 뉴스레터 textanalysis_0824.Rmd 파일 내용

제5장 환경 빅데이터 플랫폼 뉴스레터 개발 ∣ 69

구분 파일 내용

분석결과 재생

colnames(NAVER_TF)=c("키워드","빈도수") colnames(NAVER_TFIDF)=c("키워드","TFIDF") colnames(ME_TF)=c("키워드","빈도수") colnames(ME_TFIDF)=c("키워드","TFIDF") NAVER_TF=tibble(NAVER_TF)

ME_TF=tibble(ME_TF)

NAVER_TFIDF=tibble(NAVER_TFIDF) ME_TFIDF=tibble(ME_TFIDF)

```

```{r fig.showtext=TRUE,echo=FALSE, warning =FALSE}

P_NAVFQ=NAVER_TF%>% head(n=20) %>%ungroup() %>%

ggplot(aes(x=`빈도수`,y=reorder(`키워드`,`빈도수`))) + geom_col(show.legend=FALSE) +

ggtitle("NAVER 환경뉴스")+ labs(y="")+

geom_text(aes(label=`빈도수`),size=3.5,nudge_x = 18)+

theme_grey(base_family = "nanum")

P_MEFQ=ME_TF %>% head(n=20) %>%ungroup() %>%

ggplot(aes(x=`빈도수`,y=reorder(`키워드`,`빈도수`))) + geom_col(show.legend=FALSE) +

ggtitle("환경부 문건")+ labs(y="")+

geom_text(aes(label=`빈도수`),size = 3.5,nudge_x = 3)+

theme_grey(base_family = "nanum")

P_FQ=ggarrange(P_NAVFQ,P_MEFQ,ncol=2,nrow=1)

```

```{r TFIDFFIGURE, message=FALSE, echo=FALSE, warning =FALSE}

P_NAVTFIDF=NAVER_TFIDF%>% head(n=20) %>%ungroup() %>%

ggplot(aes(x=TFIDF,y=reorder(`키워드`,TFIDF))) + geom_col(show.legend=FALSE) +

ggtitle("NAVER 환경뉴스")+ labs(y="")+

geom_text(aes(label=round(TFIDF,2)),size=10, nudge_x=2)+

theme(text = element_text(size = 40))

P_METFIDF=ME_TFIDF %>% head(n=20) %>%ungroup() %>%

ggplot(aes(x=TFIDF,y=reorder(`키워드`,TFIDF))) + geom_col(show.legend=FALSE) +

ggtitle("환경부 문건")+ labs(y="")+

geom_text(aes(label=round(TFIDF,2)),size=10, nudge_x=0.2)+

theme(text = element_text(size = 40))

<표 5-1>의 계속

구분 파일 내용

분석결과 재생

P_TFIDF=ggarrange(P_NAVTFIDF,P_METFIDF,ncol=2,nrow=1) ggsave(file="P_TFIDF.png",P_TFIDF)

```

![**TF_IDF 키워드 순위 비교**](P_TFIDF.png)

분석결과 해석

이와 같은 경향은 TF_IDF 값이 높은 20개의 키워드를 추출하여 비교하여도 확인된다.

Figure 2는 TF_IDF를 기준으로 추출한 상위 20개 키워드의 TF_IDF 값을 보여준다.

Figure 2에서도 ‘대형마트’, ‘비닐봉투’, ‘쓰레기’, ‘폐기물’과 같은 키워드는 NAVER 뉴스에서만 찾아볼 수 있고, ‘흰꼬리수리’, ‘갈매기’, ‘조류’, ‘멸종위기’, ‘신차’, ‘화물차’와 같은 키워드들은 환경부 문건에서만 찾아볼 수 있다.

자료: 저자 작성.

<표 5-1>의 계속

2022년 10월 현재 환경 텍스트 분석 알고리즘이 생산하는 정보 중 뉴스레터에 반영된 정보는 환경 텍스트 키워드의 분포, TF_IDF 값 그리고 키워드 네트워크이다.