목록DL/NLP (28)
rueki
TF-IDF(Term Frequency-Inverse Document Frequency)는 DTM(문서 단어 행렬) 내에 각 단어에 대한 중요도를 계산할 수 있다. 기존의 DTM 사용보다 정확하게 문서 비교가 가능하다. TF-IDF(단어 빈도-역 문서 빈도)는 DTM 내의 각 단어들마다 중요정도를 가중치로 준다. 순서로는 DTM을 만들고 TF-IDF를 주면 된다. 문서의 유사도, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내 특정 단어의 중요도를 구하는 작업 등에 쓰일 수 있다. TF-IDF는 TF와 IDF를 곱한 값으로서, 문서 : d 단어 : t 문서 총 갯수 : n tf(d,t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수 = DTM의 각 단어들이 가진 등장 빈도 df(t) : ..
문서 단어 행렬(DTM)은 서로 다른 문서들의 Bow들을 결합한 표현 방법이다. 행과 열을 바꾸면 TDM이라고도 일컫으며, 서로 다른 문서들을 비교할 수 있게 된다. Bow(Box of words)를 하나의 행렬로 만든 것으로 볼 수 있으며, 각 단어들의 빈도를 행렬로 표현한다. 문서1 : 먹고 싶은 사과 문서2 : 먹고 싶은 바나나 문서3 : 길고 노란 바나나 바나나 문서4 : 저는 과일이 좋아요 이를 문서 단어 행렬로 표현하면 각 문서에 등장한 단어의 빈도를 행렬값으로 나타냈으며, 서로 비교가능한 것이 장점이다. 그러나 DTM은 원-핫 인코딩의 단점과 마찬가지로, 단어 집합의 크기가 벡터의 차원이 되고 대부분의 값이 0이 된다는 점이 있다. 가지고 있는 코퍼스가 방대하다면, 문서 벡터의 차원은 수백만..
단어의 순서는 고려하지 않고, 출현 빈도에만 집중하는 텍스트 데이터 수치화 표현 방법이다. Bow를 만드는 과정 1) 각 단어에 고유 인덱스 부여 2) 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터(Vector) Bow를 한번 만들어보자 from konlpy.tag import Okt import re okt = Okt() token = re.sub("(\.)","","정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다.") token = okt.morphs(token) token ['정부', '가', '발표', '하는', '물가상승률', '과', '소비자', '가', '느끼는', '물가상승률', '은', '다르다'] 토큰화 진ㅌ word2index = {} bow = [] for..