본문 바로가기
VBA

[VBA] 텍스트마이닝(ArrayList, Dictionary, Reg)

by 일등미노왕국 2022. 1. 18.

Free online word cloud generator and tag cloud creator - WordClouds.com

 

Free online word cloud generator and tag cloud creator

Wordclouds.com is a free online word cloud generator and tag cloud generator, similar to Wordle. Create your own word clouds and tag clouds. Paste text or upload documents and select shape, colors and font to create your own word cloud. Wordclouds.com can

www.wordclouds.com

최근에 텍스트마이닝이 대세이다.

텍스트 마이닝 자체가 완벽하진않다.

완벽해지려면 분리된 단어들을 국어사전과 비교하여 다시한번 명사와 조사를 구분하는 작업이 필요하다.

또한 대명사들을 실제 연관된 단어랑 연관지어주는 작업도 하여야 한다. 이는 텍스트 마이닝 입문에서 하기에는 본인조차도 부담스러운 작업이라 조금씩 조금씩 업그레이드 하면서 진행해 보려한다.

 

코드 진행은 이렇다.

1. 셀에 입력된 내용들에서 유의미 한것들을 제외하고 나머지는 모두 지운다.

2. 지운 내용에서 부사와 서술어를 제외한다.

3. 이렇게 정리한 내용들을 어레이리스트에 담아서 정렬한다

4. 반드시 정렬을 해야 하는 이유는 글 서두에도 말했듯이 조사를 [은,는,이,가,을,를...] 대표적인 조사들을 뺀다고 하더라도 단어자체에 [은,는,이,가,을,를....]이 붙어있는 경우가 있기 때문에 가장 베스트는 사전 api를 끌고와서 단어하나하나를 비교해야 한다. 이건 나중에 해보도록 하자.

이것에 대한 대안으로

[홍길동

홍길동과 함께

홍길동도

홍길동만

홍길동이]

이렇게 정렬되었을때 가장 먼저 나온 홍길동 키워드에 (.+)* 정규식 패턴을 더해서 홍길동이 포함된 어휘들을 모두 가져오게 되는데 이렇게 가져온 단어들을 대표로 홍길동으로 하여 딕셔너리 키값과 아이템값으로 계산하는것이다.

홍길동 -> 홍길동
홍길동과 함께 -> 홍길동
홍길동도 -> 홍길동
홍길동만 -> 홍길동
홍길동이 -> 홍길동

홍길동 / 5

 

물론 여기에도 한계가 있다. 처음부터 단어가 조사랑 함께 나왔을 경우 [홍길동]이 아닌 처음부터 [홍길동과] 이 먼저나왔다면 여기서 아이템 값들은 

 

홍길동과 / 2

홍길동도 / 1

홍길동만 / 1

홍길동이 / 1

 

이렇게 완전히 다른 결과가 나온다. 우선 코드 진행을 보면서 텍스트마이닝 개괄적인 형태만 익히시길 바란다.

최근3개월 대화한 멤버 찾기(22.01.18).xlsm
3.21MB

댓글