Я просматривал пакет quanteda в R и не мог понять, как функционирует tokens_skipgrams. Ниже пример из руководства этого пакета , что я не совсем уверен, что хорошо его понял:
tokens_skipgrams(toks, n = 3, skip = 0:2, concatenator = " ")
tokens from 1 document.
text1 :
[1] "insurgents killed in" "insurgents killed ongoing"
[3] "insurgents killed fighting" "insurgents in ongoing"
[5] "insurgents in fighting" "insurgents ongoing fighting"
[7] "killed in ongoing" "killed in fighting"
[9] "killed ongoing fighting" "in ongoing fighting"
Я ожидаю, что выходные данные будут состоять из следующего:
"insurgents killed in" "killed in ongoing" "in ongoing fighting"
"insurgents in fighting"
Почему результат включает:
"insurgents killed ongoing"
"insurgents killed fighting"
"insurgents in ongoing"
"insurgents ongoing fighting"
"killed in fighting"
"killed ongoing fighting"
В приведенном выше примере skip = 0: 2, то есть skip равно 0, 1 и 2. Поэтому я думал, что приведенная выше команда может быть безопасно разбита на 3 части, и комбинация каждой из них даст мне результат, выше которого как я указал, я не мог получить.
tokens_skipgrams(toks, n = 3, skip = 0, concatenator = " ")
tokens from 1 document.
text1 :
[1] "insurgents killed in" "killed in ongoing" "in ongoing fighting"
tokens_skipgrams(toks, n = 3, skip = 1, concatenator = " ")
tokens from 1 document.
text1 :
[1] "insurgents in fighting"
tokens_skipgrams(toks, n = 3, skip = 2, concatenator = " ")
tokens from 1 document.
text1 :
character(0)
Но комбинация результатов дает мне именно то, что я ожидал получить, а не тот, что приведен выше.
Кто-нибудь может решить эту проблему для меня?