
'데이터 분석 > 논문 리뷰' 카테고리의 다른 글
[논문리뷰] Deep Interest Network for Click-Through Rate Prediction (0) | 2022.06.06 |
---|
[논문리뷰] Deep Interest Network for Click-Through Rate Prediction (0) | 2022.06.06 |
---|
영문 소설 '빨강머리 앤 (Anne of Green Gables)' 을 가지고 주인공 Ann을 중심으로 관계도를 만들어 보았다.
소설 텍스트는 '프로젝트 구텐베르크' 에서 가져왔다.
https://www.gutenberg.org/ebooks/45
사이트로 들어가면 다운받을 수 있는 종류가 많은데 나는 첫번째 Read online(web)으로 들어갔다.
챕터별로 영문 텍스트를 복사 해서 Visual Studio(VS)에 붙여넣기를 했다.
붙여넣기 하기 전에 VS에서 File -> New File -> ANNE OF GREEN GABLES.json 을 만들어주었다.
(파일 저장은 jupyter notebook의 python 파일이 저장되는 곳에 저장했다.)
그러고 나서 밑에 사진처럼 딕셔너리 형식으로 "cast"와 "chapters" 를 만들었다.
참고로 "cast"는 내가 주인공을 찾아 적어 넣었다.
그 다음 코드를 작성하였다.
빨강머리 앤의 주인공 'Anne'을 기준으로 관계도가 그려진 것을 확인할 수 있다.
2.8 코사인 유사도(Cosine Similarity) (2) | 2023.02.03 |
---|---|
2.7 TF-IDF (Term Frequency-Inverse Document Frequency) (0) | 2023.01.25 |
2.6 문서 단어 행렬(Document-Term Matrix, DTM) (1) | 2023.01.19 |
2.5 Bag of Words(BoW) (0) | 2023.01.16 |
2.4 품사 태깅(PoS Tagging) (0) | 2023.01.10 |
'넘치는 데이터 속에서 진짜 의미를 찾아내는 법'을 알고 싶어서 빌려본 책.
책은 세가지 질문으로 시작된다.
‘건강검진을 받으면 장수할 수 있다?’
‘아이들이 텔레비전을 많이 보면 성적은 떨어진다?’
‘명문 대학을 졸업하면 연봉이 높다?’
언뜻 보면 세 질문의 정답은 ‘YES’로 보인다.
이 논리가 성립된다면 원인과 결과 즉, 인과관계가 성립된다고 말할 수 있다.
과연 그럴까?
건강검진을 받았기 때문에 장수할 수 있는 것(인과관계)가 아니라
건강검진을 받을 정도로 건강에 대한 의식이 높은 사람일수록 장수하는 것(상관관계)이 아닐까?
텔레비전을 보기 때문에 성적이 떨어지는 것(인과관계)가 아니라
성적이 낮은 어린이일수록 텔레비전을 많이 보는 것(상관관계)이 아닐까?
입학 점수가 높은 대학에 갔기 때문에 수입이 높은 것(인과관계)이 아니라
미래의 수입이 상승할 만한 잠재력이 높은 사람일수록 커트라인이 높은 대학에 다니는 것(상관관계)일 수도 있다.
이렇든 많은 사람들이 ‘인과관계’와 ‘상관관계’를 혼동하여 결과를 도출한다.
인과관계인지 상관관계인지 정확히 구분해 내기 위한 방법론을 ‘인과 추론’이라고 하며
이는 추리와 추정을 통해 결론을 이끌어내는 것을 의미한다.
즉, 두 개의 사실이 각각 원인과 결과인지 평가해 결론을 이끌어내는 것이다.
데이터 분석가로서 인과관계와 상관관계의 차이를 이해하고
‘정말 인과관계가 있는지’ 명확히 하는 훈련을 해두는 것이 중요하다고 생각한다.
이 책은 데이터 해석과 인과 추론의 기법을 흥미로운 사례와 함께 설명한 책이며
저자들이 직접 참여했거나 혹은 유명 석학들의 연구 결과를 토대로 인과 추론의 개념과
상관관계/인과관계에 대한 이해, 데이터 해석이 잘못됐을 때 발생할 수 있는 문제에 대해
쉽고 적절한 비유와 함께 풀어 나간 책이다.
우리가 하는 모든 행동이 데이터가 되는 시대에 데이터 분석 기술도 중요하지만
데이터가 만들어내는 숨겨진 맥락을 읽고 데이터의 분석 결과를 해석하는 기술도 필요하기에
‘인과 추론’은 결국 데이터가 범람하는 시대의 필수 교양이라고 할 수 있다.
어려운 통계 용어를 잘 모르는 사람들도 쉽게 이해하도록 구성된 책이라
데이터 관련 일을 하는 사람이라면 읽어보면 좋을 거 같다.
<빅데이터 시대, 성과를 이끌어 내는 데이터 문해력> by 카시와기 요시키 (0) | 2022.11.29 |
---|---|
<모두 거짓말을 한다> by Seth Stephens-Davidowitz (0) | 2022.11.25 |
<지속 가능한 세상을 위한 데이터 이야기> by 박옥균 (0) | 2022.10.31 |
<감으로만 일하던 김 팀장은 어떻게 데이터 좀 아는 팀장이 되었나> by 황보현우, 김철수 (0) | 2022.10.14 |
몇일전에 잠실 롯데시네마(월드타워점)에 영화를 보러갔다왔다.
영화는 일요일 밤 21시30분이었고 우린 18시03분에 입차, 24시 39분(다음날 새벽)에 출차했다.
총 주차 시간은 6시간 36분이었고 주차 요금은 6400원이었다.
그런데 궁금한것이 있었다.
첫째, 롯데시네마 월드타워점 주차 비용은 주말이든 평일이든 상관없이 10분당 200원 (최대 4시간) 이다.
만약 롯데타워몰에 4시간 이상 주차한다면 주차 비용은 어떻게 계산될까?
우선, 롯데시네마를 방문 하기위해서는 롯데월드몰 시네마 구역 주차장에 주차를 해야했다.
또한, 영화관람시 22시이후부터 50% 주차 할인이 적용되어 10분당 100원이다.
자 그럼 쉽게 일요일 오후 18시에 입차하고 24시40분에 출차했다고 가정하자.
18시부터 20시까지는 10분당 500원 (1시간 3000원) 이다.
그리고 20시부터 새벽 24시40분까지는 10분당 200원 (1시간 1200원) 이다.
계산을 하면 원래 주차금액은 11,600원이다. 그림1의 영수증 사진에서의 주차 금액과 동일하다.
그렇다면 어떻게 6,400원이 나왔는지 계산을 해보자.
입차 시간(18시)부터 4시간은 시네마 할인을 받아서 10분당 200원으로 주차 요금이 계산됐고,
22시부터 출차 시간(24시 40분)은 심야 할인을 받아서 10분당 100원으로 주차 요금이 계산됐다.
그래서 총 요금이 6,400원이 되었다.
즉, 영화관람시 4시간 주차 할인 적용은 입차 시간으로 부터 먼저 계산이 되어 지는거 같다.
둘째, 할인 시네마 5,200원은 어떻게 계산된걸까?
다시 정리해서 표를 만들어보면
표3을 보면 시네마 할인으로 3,600원, 심야 할인으로 1,600원, 총 5,200원 할인 받은 것을 확인 할 수 있다.
이는 그림1 영수증에 나타난것과 같은 동일한 금액이다. (할인 시네마 5,200원)
[TED] 거절을 통해 배운 것들 by Jia Jiang, 남형도기자 (0) | 2023.02.01 |
---|---|
[매일경제] 긍정적 생각이 사망·심혈관계 위험 낮춘다. (1) | 2023.01.18 |
[마케팅] Coca-Cola’s Friendly Twist Bottle Campaign (0) | 2022.12.13 |
[매일경제] 화물연대 파업 (0) | 2022.12.02 |
[강남도서관] 더불어 읽고 기부하기 (더.읽.기 프로젝트) (0) | 2022.11.14 |
DTM과 TF-IDF를 이용하여 추출한 벡터는 머신러닝 기법을 적용하기 위한 입력으로 사용되어
문서 분류부터 다양한 분야에 활용될 수 있다.
문서 간의 유사도를 측정하여 주어진 문서와 가장 유사한 문서를 말뭉치에서 검색하는데 사용하는 방법도
하나의 예이다.
코사인 유사도는 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미한다.
두 벡터의 방향이 완전히 동일한 경우에는 1의 값을, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖게 된다.
즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다.
이를 직관적으로 이해하면 두 벡터가 가리키는 방향이 얼마나 유사한가를 의미한다.
두개의 벡터인 A와 B에 대해서 구하는 식은 다음과 같다.
예를들어 쉽게 설명하면
doc_1 = "Data is the oil of the digital economy"
doc_2 = "Data is a new oil"
doc_3 = "Data is an information"
위의 그림은 카운트 벡터를 사용하여 doc_1과 doc_2를 벡터화한 결과이다.
이 결과를 가지고 코사인 유사도를 구해보면 아래와 같은 결과가 나온다.
CountVectorizer( )와 TfidfVectorizer( )를 사용해서 코사인 유사도를 구한 결과를 보자.
위의 그림과 같이 CountVectorizer( )와 TfidfVectorizer( )의 유사도 결과가 다르다는 것을 확인 할 수 있는데
이는 TfidfVectorizer( )는 문서에서 많이 등장하는 불용어를 제거 하고 계산을 하기 때문이다.
코사인 유사도 소스코드 (깃헙)
GitHub - kaitnam/TIL: Today I Learned
Today I Learned. Contribute to kaitnam/TIL development by creating an account on GitHub.
github.com
https://studymachinelearning.com/cosine-similarity-text-similarity-metric/
영문 텍스트(소설) 가지고 관계도 만들기 (0) | 2023.11.13 |
---|---|
2.7 TF-IDF (Term Frequency-Inverse Document Frequency) (0) | 2023.01.25 |
2.6 문서 단어 행렬(Document-Term Matrix, DTM) (1) | 2023.01.19 |
2.5 Bag of Words(BoW) (0) | 2023.01.16 |
2.4 품사 태깅(PoS Tagging) (0) | 2023.01.10 |
100일간의 거절을 통해 배운 것들
지아 지앙은 대부분의 우리가 두려워하는 거절을 과감하게 탐험합니다. 100일 동안 거절을 찾아 다니며 (낯선 사람에게 백 달러를 빌려 달라고하기, 식당에서 "버거 리필"을 요구하기) 거절이 가
www.ted.com
몇일전 친구를 카페에서 만났다. 얘기를 하던 중간에 친구가 핸드폰 충전을 해야한다면 충전기를 꺼냈는데
카페내에 콘센트가 보이지 않았다. 그래서 친구한테 '직원한테 부탁해봐' 라고 했더니 친구가 곤란해 하면서
거절당하는게 무섭다고 나한테 물어봐달라고 부탁을 했다.
나도 그런적 있었다.
거절을 당하면 움츠러들고 어디 숨어버리고 싶고..
그게 싫어서 부탁도 안하게 되고, 질문이 있어도 안하게 되었다.
그러다 몇달전 우연히 '100일간의 거절을 통해 배운 것들' 이라는 유튜브를 보았다.
블로거 '지아 장'이라는 분이 말도 안되는 부탁을 하면서 일부러 거절을 당했고,
그렇게 100일동안 100번 거절 당하기를 통해 두려움을 극복 할 수 있었다고 한다.
'거절당하기' 50번…두려움을 깼다[남기자의 체헐리즘] - 머니투데이
올해 첫눈이 올 거라던 21일 낮, 청계천 산책로는 을씨년스러웠다. 차가워진 바람이 얼굴을 연신 두드렸다. 이날은 서른 여섯번째 생일(生日)이었다. 청계천 초입에서 두리...
news.mt.co.kr
이 유튜브에 영감을 받아 '남형도' 기자도 50번 거절 당하기 실험을 하였고 그 경험을 글로 작성하였다.
처음에 거절 당할때는 생각보다 정신적으로 많이 힘들었다고 한다.
말도 안되는 부탁을 하는걸 알면서도 거절을 당하면 부끄럽고 자존심도 상하고 숨어버리고 싶었다고...
그런데 10번 정도 거절을 당하니 부탁이 편해지고, 30번이 넘어가니 그뒤로 거절당하면 '감사합니다' 라고 외치게 되었다고.
그리고 실험 끝에 그는 이렇게 말했다.
''50번의 NO', 거절에 당당해졌다"
몇년 전 일본에 사는 친척 언니를 만나러 간적이 있었다.
언니는 가끔 편의점에서 신기한 광고나 문구를 발견하면 꼭 이게 무슨 내용인지 찾아보고
모르겠으면 편의점이나 회사에 직접 물어본다고 한다.
"궁금하면 가서 물어봐야지. 왜 안물어봐?"
난 거절당하기 유튜브와 남형도 기자의 글을 읽고 부탁 할 일이 있으면 피하지 않기 연습을 시작했다.
'그래 뭐 어때, 까짓거 거절 당하면 당하고 말지.'
모르는게 있으면 물어보고, 원하는게 있으면 부탁도 해보고.
조금씩 거절에 당당해져가고 있다.
거절 당하면 깨끗하게 끝이지만 거절 당할까봐 아무것도 하지 않으면 아무일도 일어나지 않고 오히려 해볼걸...
하는 후회만 남는다.
[궁금증] 잠실 롯데시네마(월드타워점) 주차요금 계산 (0) | 2023.08.24 |
---|---|
[매일경제] 긍정적 생각이 사망·심혈관계 위험 낮춘다. (1) | 2023.01.18 |
[마케팅] Coca-Cola’s Friendly Twist Bottle Campaign (0) | 2022.12.13 |
[매일경제] 화물연대 파업 (0) | 2022.12.02 |
[강남도서관] 더불어 읽고 기부하기 (더.읽.기 프로젝트) (0) | 2022.11.14 |
카운트 벡터에서는 빈도는 일종의 가중치로 작용하기에 빈도가 높을수록 중요한 단어로 취급 되는 경향이 있다.
그렇다면 어떤 단어가 모든 문서에 나타난다면 그 단어는 과연 중요한 단어일까?
모든 문서에 'the' 의 빈도수가 높다고 해서 중요하다고 생각하긴 어려울 것이다.
이걸 다시 얘기하면 모든 문서에 다 들어있는 단어는 별로 중요하지 않다.
이러한 의미를 카운트 벡터에 반영한 것이 바로 TF-IDF 이다.
용어 그대로 해석하면 단어빈도(Term Frequency) - 역문서빈도(Inverse Document Frequency) 인데,
카운트 대신 단어의 빈도에 그 단어가 출현한 문서 수의 역수를 곱했다는 뜻이다.
TF-IDF는 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단하며,
특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단한다.
TF-IDF 값이 낮으면 중요도가 낮은 것이며, TF-IDF 값이 크면 중요도가 큰 것이다.
즉, the나 a와 같이 불용어의 경우에는 모든 문서에 자주 등장하기 때문에
불용어의 TF-IDF의 값은 다른 단어의 TF-IDF에 비해서 낮아지게 된다.
위의 예제에서 카운트 벡터의 값(DTM)과 TF-IDF의 벡터 값이 다른것을 확인할 수 있다.
또한, DTM의 결과에서 값이 0인것은 TF-IDF의 결과에서도 값은 0이다.
파이썬 텍스트 마이닝 완벽 가이드
영문 텍스트(소설) 가지고 관계도 만들기 (0) | 2023.11.13 |
---|---|
2.8 코사인 유사도(Cosine Similarity) (2) | 2023.02.03 |
2.6 문서 단어 행렬(Document-Term Matrix, DTM) (1) | 2023.01.19 |
2.5 Bag of Words(BoW) (0) | 2023.01.16 |
2.4 품사 태깅(PoS Tagging) (0) | 2023.01.10 |
다수의 문서에서 등장하는 각 단어들의 빈도를 행렬 값으로 표현한 것을 말한다.
표1과 같이 각 문서에 대한 BoW를 하나의 행렬로 표현하고 부르는 용어이다.
문서 단어 행렬은 문서들을 서로 비교할 수 있도록 수치화할 수 있다는 점에서 의의로 갖는다.
문서의 수가 많아지면 대부분의 값이 0으로 표현되는 희소 벡터(sparse vector)의 문제가 생긴다.
희소 벡터는 많은 양의 저장 공간과 높은 계산 복잡도를 요구하기에 좋지 않다.
이러한 이유로 텍스트 전처리 방법을 사용하여 구두점, 빈도수가 낮은 단어, 불용어를 제거하고,
어간이나 표제어 추출을 통해 단어를 정규화하여 단어 집합의 크기를 줄인다.
또한,
단순 빈도 수 접근 방법은 한계를 가지기도 하는데 예를들어 불용어인 the는 어떤 문서이든 자주 등장한다.
유사한 문서인지 비교하고 싶은 문서들에서 동일하게 the가 빈도수가 높다고 해서 이 문서들이
유사한 문서라고 판단해서는 안된다.
2.8 코사인 유사도(Cosine Similarity) (2) | 2023.02.03 |
---|---|
2.7 TF-IDF (Term Frequency-Inverse Document Frequency) (0) | 2023.01.25 |
2.5 Bag of Words(BoW) (0) | 2023.01.16 |
2.4 품사 태깅(PoS Tagging) (0) | 2023.01.10 |
2.3 정규화(Nomalization) (0) | 2023.01.09 |
https://n.news.naver.com/article/009/0005074828?sid=103
[생활속 건강 톡 '메디神'] 긍정적 생각이 사망·심혈관계 위험 낮춘다
박경우 서울대병원 강남센터원장 ◆ 생활속 건강 톡 '메디神' ◆ '긍정적인 사고는 긍정적인 결과를 낳습니다.' 회사를 운영하던 필자의 부친이 이메일 말미에 항상 붙이던 문구다. 자라면서 밥
n.news.naver.com
'긍정적인 사고는 긍정적인 결과를 낳는다.'
예전부터 많이 들었던 얘기지만 실천하기가 쉽지 않았고 그러다보니 와 닿지도 않았다.
그러다 몇일전에 이 기사를 읽었는데 왜 이렇게 오래 기억에 남았던지.
기사에서는 긍정적인 사고를 하기위해 도움이 되는 4가지를 소개하고 있다.
첫째. 긍정적인 프레임으로 사안을 봐야한다.
물이 컵에 반만 차 있다면 물이 반밖에 차있다라고 생각하기 보다는 반쯤 남아 있는 물의 가능성을 생각 하라는 것이다.
친구를 만나기로 했는데 갑자기 친구가 약속을 취소해 버렸다.
이럴때 '아 짜증나' 보다는 '아 계속 미뤘던 은행 업무 보러 가야겠다.' 이렇게 다른일을 하기위한 시간을 벌었다고 생각하자.
둘째. 감사하는 마음을 가져야한다.
내 입장에서 아쉬웠던 일들을 위주로 생각하면 긍정적이기 어렵다.
아쉬운일이 아닌 오늘 하루 감사했던 일들을 생각하면 내가 얼마나 운이 좋은 사람인지 알게되고 마음이 긍정적으로 변한다고.
셋째. 내가 할 수 있는 것과 할 수 없는 것을 구분해 할 수 있는 일에 에너지를 집중하자.
이게 제일 힘든거 같다. 난 사소한거에 신경을 많이 쓰고 걱정이 너무 많다.
걱정의 절반 이상이 일어나지 않을 일에 대한 것인데..
불확실성은 인간에게는 고민의 근원이 된다. 하지만 고민 한다고해서 해결될것도 아니지 않은가.
지금 내가 할 일에 집중하는 것이 나의 건강에 도움이 되는 것을 기억하자.
넷째. 내 주변과 친구들을 돌아봐야 한다.
냉소적이고 부정적인 사람들과 어울리기 보다는 긍정적이고 밝은 친구들과 어울리려고 노력하자.
정말 감사하게도 내가 어울리는 사람은 대체적으로 열심히 살아가는 긍정적인 사람들이다.
생각지도 못했는데 감사할 일이 생겼다.
이렇게 하루를 긍정적으로 감사하게 채워나가는 2023년이 되었으면 좋겠다.
[궁금증] 잠실 롯데시네마(월드타워점) 주차요금 계산 (0) | 2023.08.24 |
---|---|
[TED] 거절을 통해 배운 것들 by Jia Jiang, 남형도기자 (0) | 2023.02.01 |
[마케팅] Coca-Cola’s Friendly Twist Bottle Campaign (0) | 2022.12.13 |
[매일경제] 화물연대 파업 (0) | 2022.12.02 |
[강남도서관] 더불어 읽고 기부하기 (더.읽.기 프로젝트) (0) | 2022.11.14 |
단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법으로
문서가 가지는 모든 단어를 문맥이나 순서를 무시하고 단어에 대해 빈도 값을 부여해 특성(feature) 값을 추출하는 모델이다.
문서 내 모든 단어를 한꺼번에 Bag안에 넣은 뒤에 흔들어서 섞는다는 말로 Bag of Words 모델이라고 한다.
예를 들어 책을 한 권 읽고 대략 어떤 내용인지 알아내야 한다고 생각해보자.
처음부터 차근차근 글을 읽어 나가는 데에는 시간이 오래 걸린다.
이를 좀 더 빨리 할 수 있는 방법은 컴퓨터를 이용해서 책에 나오는 단어의 빈도를 세는 것이다.
책에 어떤 단어가 주로 사용됐는지 알아내면 내용을 유추할 수 있다.
텍스트 마이닝을 하려면 말뭉치(corpus)를 우리가 다룰 수 있는 수치 형태로 변환해야 한다.
이때 각 수치는 그 텍스트의 특성(feature)을 표현한다.
비유를 들자면, 사람이라는 대상의 특성으로는 이름, 나이, 키, 몸무게 등이 있을 것이다.
각 사람을 구분할 수 있는 것은 이러한 특성의 값들이 달라서다. (ex. Mike, 28 years old, 170cm, 62kg)
우리가 정의한 특성 관점에서, 비슷한 사람끼리는 특성 값이 비슷할 것이다.
그와 마찬가지로 텍스트 마이닝에서는 텍스트의 특성을 정의하고 그 값으로 텍스트를 구분한다.
머신러닝 알고리즘은 일반적으로 숫자형 피처를 데이터로 입력: 받아 동작하기 때문에
텍스트 데이터를 특정 의미를 가지는 숫자형 값인 벡터 값으로 변환해야 한다.
이러한 변환을 피처 벡터화라고 한다.
Bow의 피처 벡터화 2가지 방식
1. 카운트 기반의 벡터화
: 단어 피처에 값을 부여할 때 각 문서에서 해당 단어가 나타나는 횟수, 즉 Count를 부여하는 경우를 말한다.
카운트 벡터화에서는 카운트 값이 높을수록 중요한 단어로 인식된다.
2. TF-IDF(Term Frequency - Inverse Document Frequency) 기반의 벡터화
: 개별 문서에서 자주 나타나는 단어에 높은 가중치를 주되, 모든 문서에서 전반적으로 자주 나타나는 단어에
대해서는 패널티를 주는 방식으로 값을 부여하는 방법이다.
그렇다면 텍스트의 특성은 무엇으로 정의할 수 있을까?
텍스트의 특성은 단어로 표현하고, 특성값은 그 단어가 텍스트에서 나타나는 횟수로 표현한다.
예를들어 "text mining is the process of deriving high quality information from text"라는 문장이 있을 때,
이 문장에는 'text', 'mining', 'is', 'the'등의 단어가 사용됐다.
따라서 각 단어가 특성이 되고, 이 단어의 빈도가 특성의 값이 된다.
다음과 같이 파이썬의 딕셔너리로 표현 할 수 있다.
feature = { 'text': 2, 'mining': 1, 'is': 1, 'the': 1, 'process': 1, 'of': 1, 'deriving': 1, 'high': 1, 'quality': 1, 'information': 1, 'from': 1}
모든 문서의 특성은 같아야 서로 비교할 수 있기 때문에 동일한 단어들로 특성을 표현해야 한다.
다시 말해 전체 말 뭉치에 한번이라도 사용된 단어는 문서에 없더라도 특성에 포함하고 빈도를 0으로 주면 된다.
쉽게 다시 설명하면,
우선 말뭉치(Corpus)와 문서(Document)의 차이점을 알아야 하는데
텍스트 마이닝에서 보통 문장을 문서라고 하고 문장들의 집합을 말뭉치라고 한다.
( ex. 100개의 문장으로 구성된 말뭉치)
위의 예제에서는 하나의 말뭉치와 3개의 문서가 있는데 각각의 문서의 단어 조합 즉, 특성이 다르다.
문서2에는 'quality', 'deriving' 같은 특성이 포함되어 있지만 문서1과 문서3에는 없다.
이렇게 되면 모든 문서의 특성이 같지 않기때문에 서로 비교 할 수가 없다.
그러므로 전체 말뭉치에 한번이라도 사용된 단어는 특성에 포함하고 빈도를 0으로 준다.
카운트 기반 문서 표현은 문서의 의미를 반영해 벡터를 만드는 과정을 말한다.
위의 결과는 3개의 문서에 대해 특성 벡터를 추출한 결과이고 결과에서 보듯이 각 문서에 없는 특성(단어)들은
0으로 되어 있는 것을 확인할 수 있다. 이렇게 특성이 같아야 서로 비교 할 수 있다.
이렇게 하기 위해서 먼저 대상이 되는 말뭉치에 대해 하나의 단어 집합(Vocabulary)을 구성한다.
그리고 이 단어 집합을 대상으로 각 문서에 대해 빈도를 표시한다.
여기서 문제점은 위의 결과와 같이 하나의 문서에서 사용한 단어에 비해 사용하지 않은 단어(0)가 훨씬 많다.
이는 카운트 기반 문서 표현의 본질적인 문제로, 문서를 표현하기 위해 너무나 많은 특성을 사용해야 하고
그 특성중에서 극히 일부만 값을 갖는다.
이와 같이 대부분의 값이 0인 특성 벡터를 희소 벡터(sparse vector)라고 부른다.
정리하자면 텍스트는 우리가 정의한 특성에 대한 특성 값의 집합(혹은 벡터)으로 변환하는데
BoW에서는 단어가 특성이 되고, 이렇게 표현하는 이유는 문서의 단어들을 가방에 넣으면 순서가
사라지기 때문이다. 가방 안의 단어들에 대해 빈도를 계산하여 특성 벡터를 추출한다.
* 말뭉치는 '언어 연구를 위해 컴퓨터가 텍스트를 가공, 처리, 분석할 수 있는 형태로 모아 놓은 자료의 집합'을 의미한다. 일반적으로 우리가 텍스트 마이닝을 한다면 그 대상은 하나의 문장 혹은 문서(document)가 아니고 그러한 문장이나 문서들의 집합(corpus)이 된다. 따라서 카운트 기반의 문서표현은 개별 문서가 아닌 말뭉치를 대상으로 한다.
파이썬 텍스트 마이닝 완벽 가이드(2022)
파이썬 라이브러리를 활용한 텍스트 분석(2022)
파이썬 머신러닝 완벽 가이드
https://swjman.tistory.com/125
2.7 TF-IDF (Term Frequency-Inverse Document Frequency) (0) | 2023.01.25 |
---|---|
2.6 문서 단어 행렬(Document-Term Matrix, DTM) (1) | 2023.01.19 |
2.4 품사 태깅(PoS Tagging) (0) | 2023.01.10 |
2.3 정규화(Nomalization) (0) | 2023.01.09 |
2.2 토큰화(Tokenization) (0) | 2023.01.09 |