빅데이터 김교수의 "AI노마드연구소" AI로 열어가는 노마드 세상!

빅데이터 김교수의 "AI노마드연구소" AI로 열어가는 노마드 세상입니다. AI 코딩작성, SNS 분석, AI업무자동화 컨설팅 0507-1419-0222

자세히보기

교육/파이썬빅데이터분석교육

AI 빅데이터, 텍스트 마이닝기법을 이용한 소비자 감성분석( 파이썬활용)

빅데이터 김교수 2022. 8. 14. 16:47

"AI  빅데이터"로 할 수 있는 과업들은 다음과 같습니다. 

 텍스트마이닝, 추천 알고리즘, 영상처리 분석, 이상탐지, 이미지분석, 딥러닝, 기계학습, 시뮬레이션 및 금융공학 등입니다. 

 그 중 이번 시간에는 텍스트 마이닝 기반 소비자 분석측면에서 응용하여 보겠습니다. 

우리나라 AI 빅데이터 주요 기업

더보기
https://www.hankyung.com/finance/article/2020091532061

텍스트 마이닝(text mining) 정의

 텍스트 마이닝은 비정형의 텍스트 데이트에서 고품질 정보를 추출하는 프로세스입니다. 다시말해, 비정형 텍스트데이터로부터 패턴을 찾아내어 의미 있는 정보를 추출하는 분석과정 또는 기법을 말한다. 텍스트 마이닝은 데이터 마이닝과 자연어 처리(natural language process), 정보 검색 등의 분갸가 결할된 분석 기법을 사용하여 텍스트 데이터로부터 유용한 정보를 찾아내는 과정으로 이전에 알려지지 않은 새로운 정보를 찾아내는 것을 포함합니다. 

 이를 정리하면, 다음과 같습니다.

  • 웹페이지, 블로그, 전자저널, 이메일 등 전자문서로 된 텍스트자료로 부터 유용한 정보를 추출하여 분석하기 위한 도구
  • 텍스트 데이터로 부터 새로운 고급 정보를 이끌어 내는 과정 (Wikipedia, 2011b).
  • 텍스트마이닝은 데이터마이닝, 자연어처리, 정보검색등의 이론 및 실무까지 다양한 분야가 융합되어 있는 영역

부연하자면, 텍스트 마이닝은 지식 중심 조직에서 널리 채택됩니다. 여기에는 종종 연구 목적으로 대량의 수집 문서를 검사하는 작업이 포함됩니다. 텍스트 마이닝은 패턴을 식별하고, 관계를 해명히고, 텍스트 빅 데이터 레이어 깊숙이 묻혀 있는 패턴을 기반으로 하여 논고를 펴는 도구입니다.

추출한 정보는 구조화된 형식으로 변환되어 추가로 분석하거나 클러스터형 HTML 테이블, 마인드 맵 및 프레젠테이션용 차트로 정렬할 수 있습니다. 분석을 위해 데이터 웨어하우스, 데이터베이스 또는 비즈니스 인텔리전스 대시보드에 통합할 수 있습니다.

텍스트 마이닝 처리 절차(process)

텍스트마이닝처리적차 (출처 : https://www.tibco.com/)

  텍스트 마이닝처리 절차는 텍스트 전처리 > 특성 벡터화 > 머신러인 모델 구축 및 학습/평가 프로세스 수행단계를 그친다.

 각 단계별 처리내용은 다음과 같습니다. 

1. 전처리단계

  - 단어추출(토큰화)

  - 단어정제(텍스트 정체, 형태소 분석, 불용어 제거)

  - 단어마다 가중치 생성

 

2. 특성화와 특성추출

 머신러닝 알고리즘으로 분석하기 위해서는 텍스트를 구성하는 단어 기반의 특성추출(feature extraction)하고 이를 숫자형 값인 벡터 값으로 표현하는 특성벡터화(vectoriaztion)해야한다.

  - 특성(표제어) 추출

  - 특성벡터화 : BoW, Word2vec 

    > BoW(Bag of Words)-단어순서는 무시하고 빈도만 고려하여 단어가 얼마나 자주 등장하는지로 특성 벡터 생성,  카운터 기반 벡터화와  TF-IDF 기반 벡터화 방식으로 구성

더보기

TF-IDF(Term Frequency - Inverse Document Frequency)는 정보 검색 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있다.

TF(단어 빈도, term frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값으로, 이 값이 높을수록 문서에서 중요하다고 생각할 수 있다. 하지만 단어 자체가 문서군 내에서 자주 사용되는 경우, 이것은 그 단어가 흔하게 등장한다는 것을 의미한다. 이것을 DF(문서 빈도, document frequency)라고 하며, 이 값의 역수를 IDF(역문서 빈도, inverse document frequency)라고 한다. TF-IDF는 TF와 IDF를 곱한 값이다.

IDF 값은 문서군의 성격에 따라 결정된다. 예를 들어 '원자'라는 낱말은 일반적인 문서들 사이에서는 잘 나오지 않기 때문에 IDF 값이 높아지고 문서의 핵심어가 될 수 있지만, 원자에 대한 문서를 모아놓은 문서군의 경우 이 낱말은 상투어가 되어 각 문서들을 세분화하여 구분할 수 있는 다른 낱말들이 높은 가중치를 얻게 된다.

출처 : https://ko.wikipedia.org/wiki/Tf-idf

 

 문서 단어 행렬(Document-Term Matrix, DTM)이란 다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것을 말합니다. 쉽게 생각하면 각 문서에 대한 BoW를 하나의 행렬로 만든 것으로 생각할 수 있으며, BoW와 다른 표현 방법이 아니라 BoW 표현을 다수의 문서에 대해서 행렬로 표현하고 부르는 용어입니다. 예를 들어서 이렇게 4개의 문서가 있다고 합시다.

문서1 : 먹고 싶은 사과
문서2 : 먹고 싶은 바나나
문서3 : 길고 노란 바나나 바나나
문서4 : 저는 과일이 좋아요

 

띄어쓰기 단위 토큰화를 수행한다고 가정하고, 문서 단어 행렬로 표현하면 다음과 같습니다.

 

 

각 문서에서 등장한 단어의 빈도를 행렬의 값으로 표기합니다. 문서 단어 행렬은 문서들을 서로 비교할 수 있도록 수치화할 수 있다는 점에서 의의를 갖습니다. 만약 필요에 따라서는 형태소 분석기로 단어 토큰화를 수행하고, 불용어에 해당되는 조사들 또한 제거하여 더 정제된 DTM을 만들 수도 있을 것입니다

 

 

tf-idf - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. TF-IDF(Term Frequency - Inverse Document Frequency)는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서

ko.wikipedia.org

 

    > Word2vec -단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 할 수 있는 방법

 

2. 분석 기술

  - 연관어 분석

  - 토픽모델링

  - 감성분석 

이미지 출처 : http://www.ceine.cl

  - 문서요약

  - 단어 네트워크 분석

 

텍스트 마이닝을 통해 추출된 데이터에서 실행되는 분석 유형

텍스트 마이닝을 통해 추출한 데이터는 다음과 같은 다양한 유형의 분석을 실행하는 데 유용하게 사용할 수 있습니다.

기본적으로 목표는 자연어 처리(NLP), 다양한 유형의 알고리즘 및 분석 방법을 적용하여 텍스트를 분석을 위한 데이터로 변환하는 것입니다. 수집된 정보의 해석은 상기 프로세스의 중요한 부분입니다.

 

텍스트 마이닝 활용분야

 텍스트마이닝 활용분야는 여론조사, 소비자부넉, 금용시작, 신기술트렌트 활용 등 연구자의 목적에 맞게 다양하게 활용 되 수 있습니다. 

파이썬 코드

nsmc_test_df['document'] = nsmc_test_df['document'].apply(lambda x : re.sub(r'[^ ㄱ-ㅣ가-힣]+', "", x))
#re.sub(정규 표현식, 치환 문자, 대상 문자열)
nsmc_test_df.head()

참고1 : https://www.tibco.com/ko/reference-center/what-is-text-mining

참고2.  http://bigdata.dongguk.ac.kr/