Поскольку я работал с findAssocs в R, я понял, что функция фактически не забирает слова, которые встречаются вместе с найденным термином , через документов, но скорее, слова, которые возникают, когда часто искали поисковый термин.с помощью findAssocs в R, чтобы найти часто встречающиеся слова с центральным термином
Я попытался с помощью простой тестовый скрипт ниже:
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 (« домашнее хозяйство », термины (test_dtms), nomatch = 0L); slam :: crossapply_simple_triplet_matrix (test_dtms [, j], test_dtms [, -j], cor) 'или вы можете посмотреть другие пакеты. 'quanteda' имеет функцию« similiarity », которую вы можете проверить. Он поддерживает большое количество аналогичных и дистанционных мер, которые вы можете изучить. – Jota