기초통계

[텍스트 분석] 희소행렬

2022. 10. 11. 23:55

희소행렬 Sparse matrix


희소행렬 Sparse matrix

문서 단어 행렬에서 대부분의 값은 0 이다.

이러한 행렬을 희소(sparse) 행렬이라 함 ↔ 조밀(dense)

 

> 행렬 형식으로 저장하면 용량을 많이 차지하므로
   용량을 아끼기 위해 0을 빼고 저장하는 압축 방법을 사용.

 

압축방식

· Coordinate list

· Compressed Sparse Row

Coordinate list Compressed Sparse Row
0이 아닌 값을 (행, 열, 값) 형식으로 저장

예: [(0, 0, 10), (0, 1, 20),(1, 1, 30), (1, 2, 40), (2, 3, 50)]
•  값과 열번호를 별도로 저장.
•  행번호 대신, 값에서 각 행의 시작과 끝 인덱스를 저장하여 
    행번호를 압축.

 예:  값 = [10, 20, 30, 40, 50]
        열 = [0, 1, 1, 2, 3],
        행 = [0, 2, 4, 5]

•   빈 행이 없고, 한 행에 여러 개의 값이 들어갈 경우
    압축효율이 높음.
•   행렬의 한 행의 값을 빠르게 뽑을 수 있음
•   사이킷런에서 문서 단어 행렬을 만들 때 사용하는 방법
•   CSC: 행 대신 열번호를 압축한 형식