[Text Mining] 4. 텍스트 파싱(Text Parsing) 1
안녕하세요
오늘은 텍스트 마이닝 네 번째 시간입니다.
오늘의 주제는 바로 텍스트 파싱인데요,
파싱,,parsing,, 사실 평소에 그렇게 많이 접해본 단어는 아닙니다.
네이버 사전을 검색해보았더니 아래와 같이 나왔습니다.
Parse [타동사] (문장을 문법적으로) 분석하다
즉, 그러니까 텍스트 파싱이라는 건 간단히 생각하면 텍스트 분석기,, 정도가 되겠네요
나중에 살펴보면 아시겠지만 형태소 분석기와 비슷한 역할을 하는 부분도 있습니다.
그럼 지금부터 차근차근 텍스트 파싱이란 노드를 실행해보도록 하겠습니다.
우선 그 전에 지난 시간에 만들었던 데이터 소스를 불러와 볼게요
왼쪽 메뉴에서 데이터 소스를 클릭하여 오른쪽 다이어그램으로 끌어다 놓으시면 됩니다.
그 다음엔 텍스트 파싱 노드를 가져와야겠죠? 텍스트 마이닝 탭의 노드 중 오른쪽에서 세 번째 녀석이 텍스트 파싱 노드입니다.
자세히 보니 돋보기 모양이네요
데이터 소스를 가져올 때와 똑같이 다이어그램 위로 끌어다 놓습니다.
그럼 아래와 같은 형태가 만들어집니다.
저는 칼각을 좋아해서 최대한 일직선으로 맞췄는데 필수 사항은 아닙니다;
데이터소스 노드 위에 마우스 포인터를 올려놓으면 노드 오른쪽에 회색 막대기가 생깁니다.
그대로 끌어서 텍스트 파싱 노드의 왼쪽에 붙여주세요. 화살표가 하나 만들어집니다.
요렇게,,,, 별거 아니죠?
화살표로 연결이 되었으면 이제 텍스트 파싱 노드를 클릭하시고(짙은 회색 테두리로 하이라이트됨)
왼쪽에 있는 메뉴를 한번 살펴봅시다.
음,,, 복잡해 보입니다, 뭘 먼저 만져야 할지 잘 모르겠으나 하나 눈에 들어오는 게 있죠?
텍스트 파싱이 뭘하는 건지는 잘 몰라도 일단은 영어가 아니라 한국어로 분석해야 한다는 것!
영어라고 표시되어 있는 칸의 오른쪽에 있는 “…” 단추를 누르시면 언어를 한국어로 변경할 수 있습니다.
요렇게 한국어로 바꿔주었습니다.
그 다음 메뉴를 보시면 다른 품사(Different Parts of Speech)라는 메뉴가 있는데요, 이 메뉴를 “예”로 설정해 두시면
동일한 용어라도 품사가 다르면, 각기 다른 용어로 처리하겠다는 뜻입니다. 저는 그냥 둘래요 디폴트 만세
그 다음 메뉴인 명사 그룹은 혼합명사를 분류할 것인지 말 것인지를 정하는 메뉴입니다. 이것도 역시 디폴트로,,
그 아래 메뉴는 엔터티 찾기,,라는 메뉴인데요, 엔터티?? Entity??
네이버 사전을 찾아보니 Entity는 아래와 같은 뜻이 있다고 합니다.
Entity [명사] (격식) 독립체
사실 처음에 엔터티라는 글자를 보고 당황했는데 좀 더 알고 보니 엔터티는 어떤 의미에서는
“고유명사”와 비슷한 개념인 것 같더군요. 이를 테면 엔터티에는 그런 것들이 포함되어 있습니다.
주소, 회사이름, 날짜, 통화단위, 계량단위, 사람이름, 차 이름,, 등등 어떤 의미에서는 고유명사라고 볼 수 있는 것들이죠.
,,,그런데 저는 안찾으려구요; 엔터티를 찾아야 하는 상황은 이런 것들이 있겠죠.
특정 주소의 특정 쇼핑몰에 대한 의견이라던가, 대통령에 대한 의견 등을 분석할 때에는
엔터티를 찾아야 분석의 정확성을 높일 수 있을 것입니다. 제가 샘플로 이용하고 있는 데이터는 영화 댓글이므로
굳이 엔터티를 찾아야 할 필요성을 느끼지 못하여 엔터티 찾기를 생략하게 되었습니다. 변수 중에 영화제목이 있거든요
그 다음 메뉴를 살펴보겠습니다.
품사 무시,,,메뉴인데요 영어 문법과의 충돌이 어떤 식으로 일어날 지 확실하지 않으므로
이럴 때는 디폴트로 두고 넘어가겠습니다;;
엔터티를 찾지 않도록 설정하였기 때문에 엔터티 유형 무시 메뉴가 비활성화되어 있군요
속성 유형 무시 메뉴에는 디폴트로 숫자와 구두점(마침표 등)이 들어가 있는데요,
제 데이터의 영화 목록 중에 007이 있기 때문에 저는 숫자를 무시하지 않기로 했습니다.
이제 더 아래쪽 메뉴를 보시죠.
어간,, 우리말에는 어간이라는 게 있죠. 한국어 문법을 간단히 말씀드리자면
우리말에는 용언(동사+형용사)이라는 게 있는데 ~다. 로 끝나는 형태라고 보시면 됩니다.
가다 보다 듣다 쓰다 등등. 여기서 어간은 가- 보- 듣- 쓰- 가 됩니다.
그니까 어간을 분석하겠다는 얘기는 가다, 갔다, 갔는데, 가다가, 갔던 등등의 단어들을
같은 어간인 가- 로 묶겠다는 얘기가 되죠. 이건 당연히 “예”로 두어야 합니다.
그 다음은 유의어 인데요, 유의어도 리스트를 만들 수 있습니다만,
유의어를 짜는 방법론 자체가 나름의 전문적인 국어국문학 지식이 필요하기 때문에 넘어가도록 하겠습니다.
유의어 때문에 분석에 차질이 생기는 분은 따로 만들어 보시는 방법도 추천해드리고 싶네요.
만드는 방법은 다음 시간에 말씀드릴 start/ stop list와 비슷합니다.
그 밑의 start list/ stop list 는 오늘은 넘어갈게요, 다음 시간에 말씀드릴 예정입니다.
간단히 start list는 분석에 포함시킬 단어의 목록, stop list는 분석에서 제외시킬 단어의 목록이라고 보시면 되며,
두 가지 목록은 한꺼번에 적용될 수 없습니다. 시스템에서 못하게 해요ㅠ
자, 오래 기다리셨습니다. 모든 세팅이 완료되었으니 파싱 노드를 우클릭하시고 실행을 눌러봅시다.
실행할 것인지를 묻는 팝업이 뜨면 시원하게 “확인”을 눌러주세요.
파싱이 완료되면 팝업이 하나 뜹니다. “결과”를 눌러줍시다.이 중에 우리가 살펴보게 될 화면은 오른쪽 열의 위에서 두 번째 화면인 “용어”입니다. 확대시켜 보겠습니다.
용어별로 빈도 수와 등장한 문서(여기서는 댓글)의 수, 빈도별로 매겨진 순위 등의 정보가 나옵니다.
누가누가 들어가 있나 확인해보고 창을 닫습니다.
텍스트 파싱은 텍스트 필터와 함께 사용되기 때문에 파싱 결과만으로는 유의한 정보를 얻기가 쉽지 않습니다.
따라서 오늘은 파싱을 실행해본 것에 의의를 두고 이만 마치도록 하겠습니다.
다음 시간에 말씀드릴 start/ stop list를 이용하여 파싱의 정확성을 높인 다음,
그 다음 시간에는 텍스트 필터를 이용하여 우리가 원하는 방향대로 텍스트가 잘 분류되었는지
감상해보는 시간을 갖도록 하겠습니다.
오늘도 긴 글 읽어주시느라 고생 많으셨습니다. 질문 및 지적하실 사항은 언제든지 댓글로 부탁드립니다.
오늘도 좋은 하루 되세요! 감사합니다.