2013-10-12 5 views
0

하나의 문서 (측량 컴파일) 만 있습니다. findAssocs를 사용하여 단일 문서 내에서 단어 연결을 원합니다. 지금까지 내가 본 모든 예제는 몇 가지 문서의 모든 조합입니다.하나의 문서에서 findAssocs

inspect(myDtm) 
A term-document matrix (864 terms, 1 documents) 

Non-/sparse entries: 864/0 (what is this for?) 
Sparsity   : 0% (what is this for? what does it mean if its 0%) 
Maximal term length: 20 
Weighting   : term frequency (tf) 

내 데이터는 = 숫자 (0)

findAssocs(myDtm, "salary", 0.5) 
numeric(0) 

도와주십시오 내 코드와 내가 결과를 얻을이

unwanted    1 
upgrade    3 
valid     1 

것 같습니다.

답변

1

희소성은 0과 같은 행렬 요소 (cf. 셀)의 비율을 측정합니다. 희소성이 높으면 하나 또는 몇 개의 문서에서만 많은 용어가 발생합니다. 예제에는 하나의 문서 만 있으므로 모든 용어는 해당 문서에 있어야합니다. 매우 일반적으로 낮은 수준의 희소성은 문서 유사성을 조사하는 데 더 유용합니다 (귀하가하는 일이면 ... 귀하의 질문에서 명확하지 않습니다).

질문에 대한 대답은 already been asked and answered입니다. findAssocs을 사용하여 용어 연결을 계산하려면 dtm에 문서가 두 개 이상 있어야합니다.

findAssocs과 관련된 더 자세한 도움말을 보려면 reproducible example을 입력해야합니다. tm 패키지와 함께 제공되는 '원유'데이터 세트를 사용하고 findAssocs으로 실험하여 매개 변수를 변경하면 어떻게되는지 확인하십시오. 내장 데이터 사용 방법에 대한 자세한 내용은 tm [documentation] (http://cran.r- project.org/web/packages/tm/vignettes/tm.pdf)을 확인하십시오.

다음은 사용 예입니다 내장 데이터, 자신을 위해 그것을 시도 :

require(tm) 
data(crude) 
dtm <- DocumentTermMatrix(crude) 

# one doc in dtm, doesn't work... 
dtm1 <- dtm[1,] 
findAssocs(dtm1, "oil", 0.01) 

# ten docs, does work 
dtm10 <- dtm[1:10,] 
findAssocs(dtm10, "oil", 0.01) 
0

당신은 다음과 같은 방식으로

data <- data.frame(text=txt, stringsAsFactors=FALSE) 

tdm <- TermDocumentMatrix(Corpus(DataframeSource(data))) 

기본적으로 데이터를 가져 오기에 데이터를 추가하여 findAssocs을 사용할 수 있습니다 "출처", "출처"를 "코퍼스"로 변환 한 다음 "코퍼스"에서 TDM을 만듭니다.

0

몇 년 늦었습니다. 하지만 최근에 같은 문제가 발생했습니다. 용어 - 문서 행렬 (TDM)이 하나의 문서로만 구성되기 때문입니다. 오히려 tdm은 여러 개의 문서로 구성되어야합니다. paste()을 사용하여 데이터 프레임에서 텍스트를 검색하는 경우 paste(data$text, collapse = " ")이 아닌 paste(data$text)을 TDM으로 사용하기 전에 사용해야합니다.

하지만 재현 가능한 예를 제시하면 도움이 될 수 있습니다.

관련 문제