이경수 선생님의 수학실험실

R Text mining 본문

R

R Text mining

(이경수) 2021. 4. 21. 13:58

문서에서 단어를 추출하는 함수를 정의한 것이다. 먼저 words에 벡터 형식으로 단어들이 채워지고, 이들은 다시 wlist라는 list의 이름이 된다. 그리고 문서 내, 같은 단어의 모든 위치가 해당 이름 아래 축적된다.

> findwords <- function(doc){
+     words <- scan(doc,"")
+     wlist <- list()
+     for(i in 1:length(words)){
+         wlist[[words[i]]] <- c(wlist[[words[i]]],i)
+     }
+     return(wlist)
+ }
> txt <- findwords("Apple.txt")
Read 706 items
> txt
$Apple
 [1]   1  63  66 143 145 147 149 157 163 165 168 170 189 210 223 245 259 309 324 340 385 410 434 452 525 542 560 585 615
[30] 651 678

$Inc.
[1]   2 453

$is
[1]   3  26 543 561 575 637 669

$an
[1]   4 313 499

$American
[1] 5

$multinational
[1] 6

$technology
[1]   7  38 547

$company
[1]   8 448 513 548 592 659

$headquartered
[1] 9

 

다음 odrlist 함수는 위 findwords 함수로 얻은 wlist를 빈도수에 따라 오름차순으로 재배열하는 함수이다. 여기서 sapply는 list의 각 요소마다 함수를 적용시킬 수 있는 함수로써 벡터 형식의 결과물을 만들어 낸다. wlist에서 각 요소의 길이를 재고 있는데, 이것은 곧 각 단어의 빈도수를 구하는 것이라 할 수 있다. order 함수는 데이터를 오름차순으로 배열했을 때, 각 데이터의 본래 index를 반환하는 함수이다. 이를 통해 wlist의 단어들을 빈도수에 따라 재배열하는 것이 가능함을 알 수 있다.

 

'R' 카테고리의 다른 글

R List indexing  (0) 2021.04.21
R function_example3  (0) 2021.04.20
R function_example2  (0) 2021.04.20
R function_example1  (0) 2021.04.20
R의 데이터 타입_배열(array)  (0) 2021.04.20
Comments