- Mining : 가치있거나 유용한 광물을 캐는 것
- X_Mining
X = 대상 ( ex : Data(text, patent ...) )
대상으로부터 가치있거나 유용한 것을 얻는 것이다.
이를 위해 새로운 perspective, 효과적인 솔루션, 효울적인 데이터 분석이 필요하다.
-Data Mining
: 데이터로부터 가치있거나 유용한 것을 얻는 것이다.
거대한 데이터셋에서 패턴(needs 등)을 발견하는 과정이다.
intelligent methods의 필수적인 과정으로, 효과적인 인사이트 및 데이터 패턴을 발굴하는데 사용된다.
Steps)
1) 데이터 구조화
2) 데이터에 적용하고자 하는 model 구축
3) 모델 평가 및 모델을 데이터에 적용하여 분석
Important Things : 어떤 데이터를 사용할 것인지, 어떤 features를 추출할 것인지 결정해야한다.
- Feature(피쳐)란?
: A feature of something is an interesting or important part or characteristic of it
무언가에 대해서 중요하거나 흥미를 가질만한 것이다.
(Ex) 사람에 대해서 feature는 키, 나이, 머리 길이 등이 있다.
+ 참고 : en.wikipedia.org/wiki/Feature_(machine_learning)
- Feature selection
: 머신러닝과 통계학에서 사용하는 변수 선택, attribute 선택 도는 변수 subset selection이다.
다시 말해서, 모델을 만들 때 사용하기에 필요한 feature을 선택하는 것이다,
-Structurization(구조화)
: The action or an act of giving a structure to something, or of arranging things into an organized pattern. => 구조화된 패턴으로 무언가에 대해서 구조를 만들거나 배열하는 것이다.
Ex) Document -> Keyword Vectors
Document Structurization
1) Bag of words model (Bow)
=> 정보검색(IR)과 텍스트 마이닝에서 많이 사용되는 방법이다.
텍스트(문장, 문서 등)의 중복은 고려하지만, 순서 및 문법은 고려하지 않는다.
텍스트 데이터에 대한 feature generation으로 사용된다.
ex) 문장 1 : I like burger and they like burger too
Bag of words = [I, like, like, burger, they, too, burger]
Set of words = [I, like, burger, they, too]
2) N-gram model ( Bag-of-words의 변형)
=> 연속적인 N개의 텍스트를 하나로 보는 것이다.
VSM ( Vector space model)
- 1975년 Salton이 소개
- 텍스트 문서를 표현하기 위해 벡터의 성질을 가진 선형모델이다. (index terms = feature)
- 정보 검색, 정보 필터링 등 널리 사용되고 있다.
벡터 스페이스는 주어진 문서(문장)에 대해서 각 dimension에 frequency에 상응하도록 배열한다.
각 벡터의 차원은 문장에서 단어의 수이다. 이때 단어는 corpus(말뭉치)에서 각 구분되는 단어이다.
Steps)
1) 텍스트 데이터에서 단어 추출
2) 단어 corpus 집합 만들기
3) stop-words 확인 (불용어 등)
4) 각 텍스트에서 의미 있는 단어(distinct words) corpus를 벡터로 표현한다.
Ex)
1) I like burger and they like burger too
2) [ I, like, burger, and, they, too]
3) and , too 제거 -> [ I, like, burger, they]
4) [ I, like, burger, they]의 벡터 표현(각 단어 빈도수) -> [1,2,2,1]
Document similarity
-> 코사인유사도(Cosine similarity)
en.wikipedia.org/wiki/Cosine_similarity
- Term Frequency (TF)
- tf(t,d) (t: a term , d : a document) : d(문서)에 있는 t(단어)의 빈번도 이다.
- tf_bool(t,d) : 해당 doc에 term이 있으면 1, 없으면 0으로 표현한다.
- tf_adf(t,d) : tf(t,d) / (d에서 단어의 수) ... 문장의 길이가 차이가 있을 경우를 대비해 값을 문장에서 단어의 수로 나눈다.
- tf_Log(t,d) = log(1_tf(t,d)) : 너무 많은 단어의 빈번도가 있을 경우를 대비해 로그를 이용해 크기를 축소
- Inverse document frequency (IDF)
- 얼마나 많은 정보를 제공하는지에 대한 지표
- VSM의 방법을 사용하는 모든 문서에 대해서 특정 단어가 흔한지, 중요한지를 고려한다.
- IDF=log2(N/DF) ( N: 전체 docs에서 단어의 수 , DF : 전체 docs에서 특정 t단어의 수)
- TF-IDF
TF(term frequecy)에 대해서 IDF를 통해 단어가 얼마나 중요한지를 나타내준다.
- term이 높은 가중치를 가진다면, 단어의 빈번도가 높고 전체 docs에서 그 term의 빈번도는 낮다.
다시 말해서, rare하면서, 특정문서에서 빈도가 높게 나온것을 의미한다.
tf-idf(t,d,D) = tf(t,d) idf(t,D)
en.wikipedia.org/wiki/Tf%E2%80%93idf
Information retrieval(IR : 정보검색)
: 정보리소스(Information resources)의 집합으로부터 필요한 정보와 관련된 resources를 얻어오는 것이다.
(information filltering의 방법 중 하나가 될 수있다.)
Ex) 뉴스 기사 중 '데이터' 단어 포함 된 기사
IR 전략을 사용함으로 효과적인 연관 문서의 검색을 위해 아래 3가지 방법이 있다.
( 오래된 방법들이므로 추가적인 방법이 있을 것이라고 생각합니다.)
1) Standard Boolean model
2) Basic VSM
3) Generalized VSM
1) Standard Boolean model
고전적인 정보 검색(IR) 모델이며 동시에 가장 많이 채택 된 최초의 모델이다.
오늘날까지 많은 IR 시스템에서 사용된다.
검색은 문서에 쿼리 용어가 포함되어 있는지 여부를 기반으로 한다.
ex) D1 = [ 나는, 햄버거를, 좋아한다.]
D2 = [철수는, 햄버거도, 좋아한다.]
D3 = [맹구는, 햄버거만, 좋아한다.]
Q = D1 ^ D2 ^ D3 = [좋아한다.]
이에 장점으로는 간단하고 쉽지만, 문제점으로는 exact matching이 되어야한다는 점이다. 햄버거라는 단어가 3개의 문서에 들어감에도 조사로 인해 다른 단어로 인식하는 문제점이 있다.
(참고) en.wikipedia.org/wiki/Boolean_model_of_information_retrieval
2) Basic VSM-based Search
문서의 연관 순위를 계산해서 문서 유사도를 산출할 수 있다.
각 문서 벡터와 쿼리벡터 사이의 각도를 볼 수있다.
높은 순위의 문서들은 쿼리에 대해 높은 유사성을 가진다.
선형대수에 기반한 간단한 모형이지만, 문서와 쿼리 사이의 연속적인 값의 유사도를 계산할 수 있다. ( boolean 모델은 0,1) 또한, 연관성에 기반한 순위화가 가능하며 부분적인 매칭을 할 수 있다.
하지만, 장문의 documents에 대해서는 잘 나타내지 못하며, 각 단어 벡터들 사이에 독립적이라는 가정을 한다.
다시말해서, 문서상 유사한 단어들의 벡터가 다르다는 가정을 하여 표현된다.
3) Generalized VSM-based Search
위에서의 단점을 보완한 것이 Generalized VSM-based search이다.
이 모델에서는 term-to-term간의 상관관계(corelations)를 산출하여 검색하여 순위화 한다.
(corelations : term간의 독립성(orthogonality)을 축소 시킨다. -> 위에서는 모두 독립한다고 가정)
이 모델은 단어 사이의 semantic correlations를 고려하는데, document-term occurrence frequency matrix를 사용한다.
위에서의 term-document Matrix와 이를 transpose한 document-term matrix를 곱하면, term-term matrix를 구할 수 있다.
이렇게 구한 term-term matrix는 각 단어의 상관관계를 구할 수 있다.
(각 단어의 row에 대해서 각 단어의 컬럼에 따른 중복 횟수를 count하여 frequecy를 구할 수 있다.)
d_k : doument
q : user's query
t : each term correlation(t_i, t_j : i와j의 상관관계 : matrix에서 i,j의 값)
w_i,k , w_i,q : TF-IDF weighting of each term
따라서, GVSM기반 검색은 corpus내의 각 단어에 대한 유사도를 구할 수 있다.
텍스트 마이닝( 텍스트 분석)
-> 텍스트 데이터로부터 유용하거나 가치있는 것을 얻는 것.
-> text로부터 qunatitative, 통계적, systemic models를 사용하여 high quality information을 얻는 과정이다.
텍스트 마이닝의 Materials : 논문, 연구 자료, 오픈소스, 소셜미디어 데이터, 뉴스, 블로그 등
텍스트 마이닝의 features: 기술 키워드, entities, 각 단어의 감성도, 문서의 분류 등
(예를 들어, 고객 리뷰를 분석하여 고객의 니즈를 찾고(감성분석) 고객을 이해하고 제품에 적용하여 만족도를 높인다.)
Text mining process
1) 데이터 획득 및 cleansing
-> 오픈데이터 소스, 크롤링 및 스크래핑 등으로 데이터를 얻어와 전체적인 데이터 cleansing을 한다.
2) 텍스트 구조화
-> 텍스트 데이터 transformation(array, matrix -> useful form으로 구조화 ex: term-term corelation matirx), preprocessing(전처리: 불용어처리, 중요하지 않은 단어 제외 등) ,
3) 모델링
->분석모델(기법)을 전처리 데이터에 적용
-> ex: 네트워크, 분류모델, 추천모델, 클러스터링, 토픽 모델링, 연관 규칙 마이닝, ANP, DEMATEL등
4) 평가 및 검증
5) 적용
'Make the Learning Curve > Data Science' 카테고리의 다른 글
기계학습 이론과 기본 개념( + SVM, 통계모델) (0) | 2021.10.29 |
---|---|
[Random Forest 개요] (0) | 2021.06.04 |
[CNN] CNN을 이용한 MNIST-3 // MNIST Predict (0) | 2020.12.18 |
[CNN] CNN을 이용한 MNIST-2 // 모델링 (0) | 2020.12.18 |
[CNN] CNN을 이용한 MNIST-1 // MNIST 이해 및 데이터 확인 (0) | 2020.12.18 |
댓글