R TermDocumentMatrix 단어 이름변경

(R TermDocumentMatrix 용어 이름변경에서 넘어옴)

1 개요[ | ]

R TermDocumentMatrix 용어 이름변경
  • 기존용어 1개를 신규용어로 변경한다.
  • 기존용어가 tdm 내에 없는 경우 무시된다.
  • 신규용어가 이미 tdm 내에 있는 경우 오류가 발생한다.
신규용어가 이미 있는 경우에도 이름을 변경하며 합산을 하고자 한다면 R TermDocumentMatrix 용어 병합을 참고하라.
library(tm) # TermDocumentMatrix()

zTdmRenameTerm = function(tdm, term1, term2) {
  nms = rownames(tdm)
  if( length(nms[nms==term2]) > 0 ) stop(paste0('Error: term2=[',term2,'] already exists.'))
  nms[which(nms==term1)] = term2
  rownames(tdm) = nms
  return(tdm)
}

docs1 = c("안녕, 안녕.", "반갑다, 친구들.", "반갑다, 친구야, 친구야")
## docs1 = iconv(docs1, "CP949", "UTF-8") ## 윈도우 R스튜디오 하드코딩 데이터입력시 인코딩 변환
tdm1 = TermDocumentMatrix(Corpus(VectorSource(docs1)),control=list(removePunctuation=T,stopwords=F))
inspect(tdm1)
## <<TermDocumentMatrix (terms: 4, documents: 3)>>
## Non-/sparse entries: 5/7
## Sparsity           : 58%
## Maximal term length: 3
## Weighting          : term frequency (tf)
## Sample             :
##         Docs
## Terms    1 2 3
##   반갑다 0 1 1
##   안녕   2 0 0
##   친구들 0 1 0
##   친구야 0 0 2

inspect(zTdmRenameTerm(tdm1, "친구들", "친구"))
## <<TermDocumentMatrix (terms: 4, documents: 3)>>
## Non-/sparse entries: 5/7
## Sparsity           : 58%
## Maximal term length: 3
## Weighting          : term frequency (tf)
## Sample             :
##         Docs
## Terms    1 2 3
##   반갑다 0 1 1
##   안녕   2 0 0
##   친구   0 1 0
##   친구야 0 0 2

# 기존용어 없는 경우
inspect(zTdmRenameTerm(tdm1, "아무말", "친구"))
## <<TermDocumentMatrix (terms: 4, documents: 3)>>
## Non-/sparse entries: 5/7
## Sparsity           : 58%
## Maximal term length: 3
## Weighting          : term frequency (tf)
## Sample             :
##         Docs
## Terms    1 2 3
##   반갑다 0 1 1
##   안녕   2 0 0
##   친구들 0 1 0
##   친구야 0 0 2

# 신규용어가 이미 있는 경우
inspect(zTdmRenameTerm(tdm1, "친구들", "친구야"))
## Error in zTdmRenameTerm(tdm1, "친구들", "친구야") : 
##   Error: term2=[친구야] already exists.

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}