본문 바로가기
Make the Learning Curve/Data Science

Text Mining 개요 ( Bow, VSM, TF, IDF, TF-idf , IR)

by 에이도 2021. 4. 21.

 

출처 : https://towardsdatascience.com/organizing-your-first-text-analytics-project-ce350dea3a4a

- 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)

https://www.oreilly.com/library/view/statistics-for-machine/9781788295758/eb9cd609-e44a-40a2-9c3a-f16fc4f5289a.xhtml

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)  

참고 :  link.springer.com/referenceworkentry/10.1007%2F978-0-387-39940-9_933#:~:text=Definition,in%20which%20a%20term%20appears.

- 얼마나 많은 정보를 제공하는지에 대한 지표
- 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 

 

tf–idf - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search (term frequency–inverse document frequency) a numerical statistic intended to reflect the importance of a word to a document in a collection or text corpuscles In information retriev

en.wikipedia.org

 


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 - documet matrix

 

위에서의 term-document Matrix와 이를 transpose한 document-term matrix를 곱하면, term-term matrix를 구할 수 있다.

이렇게 구한 term-term matrix는 각 단어의 상관관계를 구할 수 있다. 
(각 단어의 row에 대해서 각 단어의 컬럼에 따른 중복 횟수를 count하여 frequecy를 구할 수 있다.)

(참고)  en.wikipedia.org/wiki/Generalized_vector_space_model

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, 각 단어의 감성도, 문서의 분류 등

(예를 들어, 고객 리뷰를 분석하여 고객의 니즈를 찾고(감성분석) 고객을 이해하고 제품에 적용하여 만족도를 높인다.)

 

출처 : https://www.slideshare.net/mgrcar/text-and-text-stream-mining-tutorial-15137759

Text mining process

1) 데이터 획득 및 cleansing
->   오픈데이터 소스, 크롤링 및 스크래핑 등으로 데이터를 얻어와 전체적인 데이터 cleansing을 한다.

2) 텍스트 구조화
-> 텍스트 데이터 transformation(array, matrix -> useful form으로 구조화 ex: term-term corelation matirx),  preprocessing(전처리: 불용어처리, 중요하지 않은 단어 제외 등) , 

3) 모델링
->분석모델(기법)을 전처리 데이터에 적용
-> ex: 네트워크, 분류모델, 추천모델, 클러스터링, 토픽 모델링, 연관 규칙 마이닝, ANP, DEMATEL등 

4) 평가 및 검증 

5) 적용

 

 

 

댓글