Вы можете использовать функцию fcm()
для подсчета совпадений в фиксированном окне, например, 5 слов.Это создает «матрицу совместного использования признаков» и может быть определена для любого размера диапазона маркеров или для контекста всего документа.
Для вашего примера или хотя бы примера, основанного на моей интерпретации ваших вопросов, это будет выглядеть следующим образом:
library("quanteda")
## Package version: 1.4.3
## Parallel computing: 2 of 12 threads used.
## See https://quanteda.io for tutorials and examples.
txt <- c(
d1 = "He had a bag of tools in his car",
d2 = "bag other other other other tools other"
)
fcm(txt, context = "window", window = 5)
## Feature co-occurrence matrix of: 10 by 10 features.
## 10 x 10 sparse Matrix of class "fcm"
## features
## features He had a bag of tools in his car other
## He 0 1 1 1 1 1 0 0 0 0
## had 0 0 1 1 1 1 1 0 0 0
## a 0 0 0 1 1 1 1 1 0 0
## bag 0 0 0 0 1 2 1 1 1 4
## of 0 0 0 0 0 1 1 1 1 0
## tools 0 0 0 0 0 0 1 1 1 5
## in 0 0 0 0 0 0 0 1 1 0
## his 0 0 0 0 0 0 0 0 1 0
## car 0 0 0 0 0 0 0 0 0 0
## other 0 0 0 0 0 0 0 0 0 10
Здесь термин bag встречается один разв пределах 5 токенов инструмента , в первом документе.Во втором документе они разнесены более чем на 5 токенов, поэтому это не учитывается.