Как удалить одинарные и двойные символьные токены с помощью quanteda :: tokens_select () - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь удалить одинарные и двойные символьные токены.

вот пример:

toks <- tokens(c("This is a sentence. This is a second sentence."), remove_punct = TRUE)

toks <- tokens_select(toks, min_nchar=1L, max_nchar=2L, selection = "remove")

toks

Результаты:

токены из 1 документа.text1:

[1] "is" "a" "is" "a"

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

Ответы [ 3 ]

0 голосов
/ 09 февраля 2019
library(quanteda)

toks <- tokens(c("This is a sentence. This is a second sentence."), remove_punct = TRUE)
tokens_select(toks, min_nchar=3L)
0 голосов
/ 09 февраля 2019

Похоже, что аргумент выбора игнорируется.

Это дает желаемые результаты.

toks <- tokens_select(toks, min_nchar=3L, max_nchar=79L)

0 голосов
/ 09 февраля 2019

Вам нужно конвертировать данное предложение в токены.Вы можете сделать следующее:

library(quanteda)

# convert to tokens
tokens <- unlist(tokens(sent, remove_punct = T), use.names=F)

# to remove tokens with <= 2 characters
Filter(function(x) nchar(x) > 2, tokens)

[1] "This"     "sentence" "This"     "second"   "sentence"
...