Рассмотрим этот простой пример
dfm1 <- tibble(text = c('hello world',
'hello quanteda')) %>%
corpus() %>% tokens() %>% dfm()
> dfm1
Document-feature matrix of: 2 documents, 3 features (33.3% sparse).
2 x 3 sparse Matrix of class "dfm"
features
docs hello world quanteda
text1 1 1 0
text2 1 0 1
и
dfm2 <- tibble(text = c('hello world',
'good nigth quanteda')) %>%
corpus() %>% tokens() %>% dfm()
Document-feature matrix of: 2 documents, 5 features (50.0% sparse).
2 x 5 sparse Matrix of class "dfm"
features
docs hello world good nigth quanteda
text1 1 1 0 0 0
text2 0 0 1 1 1
Как видите, у нас одинаковые текстовые идентификаторы в двух dfms
: text1
и text2
.
Я бы хотел "вычесть" dfm2
в dfm1
, чтобы каждая запись в dfm1
вычиталась из ее (возможно) совпадающей записи в dfm2
(тот же текст, то же слово)
Так, например, в text1
, hello
происходит 1 раз, а в text2
это также происходит 1 раз.Таким образом, выход должен иметь 0 для этой записи (то есть: 1-1).Конечно, записи, которые не находятся в обоих dfms
, должны быть оставлены без изменений.
Как я могу сделать это в Quanteda?