Существует ли функция R для поиска ключевых слов в пределах определенного «расстояния до слова»? - PullRequest
1 голос
/ 04 апреля 2019

Мне нужна функция для поиска слов на определенном «расстоянии».Слова «сумка» и «инструмент» интересны в предложении «У него в машине была сумка с инструментами».

С помощью функции Quanteda KWIC я могу найти «мешок» и «инструмент» по отдельности, но это часто дает мне перегрузку результатов.Мне нужно, например, «сумка» и «инструменты» в пяти словах друг от друга.

1 Ответ

0 голосов
/ 04 апреля 2019

Вы можете использовать функцию 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 токенов, поэтому это не учитывается.

...