Подстрока оценки компонентов слова в R для НЛП - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь выполнить некоторые строковые вычисления для заданных слов так, чтобы вывод представлял собой список компонентов слова в двухбуквенных комбинациях.

Например,

"Дом" становится 'ho', 'ou', 'us', 'se'

Создание такого результата относительно просто с использованием 'substr', как показано ниже:

y= 'house'

substr(y, start = 1, stop = 2)
substr(y, start = 2, stop = 3)
substr(y, start = 3, stop = 4)
substr(y, start = 4, stop = 5)

Что бы я хотел иметь сделать это, однако, сделать это почти рекурсивно, чтобы любое слово любой длины было выведено в его комбинации букв из двух компонентов. или», 'г c', 'ча', 'ар'. Et c Et c.

Есть ли способ сделать это, используя циклы или функцию? Должна ли длина слова быть условием функции?

Любые мысли с благодарностью.

1 Ответ

1 голос
/ 26 апреля 2020

Мы можем использовать substring:

get_string <- function(x) {
   inds <- seq_len(nchar(x))
   start = inds[-length(inds)]
   stop = inds[-1]
   substring(x, start, stop)
}

get_string('House')
#[1] "Ho" "ou" "us" "se"

get_string('Motorcar')
#[1] "Mo" "ot" "to" "or" "rc" "ca" "ar"
...