R에서 findAssocs로 작업 할 때이 함수는 실제로 문서에서 검색된 용어 과 함께 발생하는 단어를 선택하지는 않지만 오히려 검색 용어가 자주 등장 할 때 발생하는 단어.R에서 findAssocs를 사용하여 자주 발생하는 단어를 찾을 수 있습니다.
나는 아래의 간단한 테스트 스크립트를 사용하여 시도했다 :
test <- list("housekeeping bath towel housekeeping room","housekeeping dirty","housekeeping very dirty","housekeeping super dirty")
test <-Corpus(VectorSource(test))
test_dtm<-DocumentTermMatrix(test)
test_dtms<-removeSparseTerms(test_dtm,0.99)
findAssocs(test_dtms,"housekeeping",corlimit = 0.1)
그리고 R에서 돌아 오는 결과입니다 :
$housekeeping
bath room towel
1 1 1
가 "더러운"라는 단어가 만점에 3 개에서 발생하는 것으로 나타났습니다 모든 문서에서 단 한 번 발생했던 반환 된 키워드와 비교할 때 4 개의 문서가 필요합니다. 누구나 내 스크립트에서 잘못되었거나 더 좋은 방법이 있는지 알 수 있습니까?
내가 달성하고자하는 결과는 모델이 특정 문서 내에서가 아니라 모든 문서에서 검색어와 자주 발생하는 단어를 반영해야한다는 것입니다. 나는 4 개의 문서를 1로 결합하려고했지만 findAssocs가 단일 문서에서 작동하지 않으므로 작동하지 않습니다.
조언이 있으십니까?
'cor (c (2,1,1,1), c (0,1,1,1))'의 결과를 확인하십시오. 그것은 "더러운" "하우스 키핑"에 대한 상관 관계 계산입니다. 그것은 -1이고'findAssocs'는 0에서 1 사이의 상관 관계가 필요합니다. – Jota
@Jota 여기서 강조하고 싶은 단어가 "더러운"경우 대체 방법이 있는지 조언 해 주시면 감사하겠습니다. –
예,'findAssocs'에 대한 코드를 파고 필요에 맞게 수정할 수 있습니다. 예를 들어, 다음은 코드에서 파헤쳐서 테스트하지 않은 것입니다.'j <- match ("housekeeping", Terms (test_dtms), nomatch = 0L); slam :: crossapply_simple_triplet_matrix (test_dtms [, j], test_dtms [, -j], cor)'또는 다른 패키지를 볼 수 있습니다. 'quanteda'는 당신이 체크 아웃 할 수있는'similiarity' 함수를 가지고 있습니다. 그것은 당신이 볼 수있는 유사성과 거리 측정의 좋은 번호를 지원합니다. – Jota