Токенизация в тидитексте, выход в амперсанды - PullRequest
1 голос
/ 21 апреля 2020

В настоящее время я использую функцию unnest_tokens() из пакета tidytext. Он работает именно так, как мне нужно, однако он удаляет амперсанды (&) из текста. Я бы хотел, чтобы это не делалось, но оставил все остальное без изменений.

Например:

library(tidyverse)
library(tidytext)

d <- tibble(txt = "Let's go to the Q&A about B&B, it's great!")
d %>% unnest_tokens(word, txt, token="words")

в настоящее время возвращает

# A tibble: 11 x 1
   word 
   <chr>
 1 let's
 2 go   
 3 to   
 4 the  
 5 q    
 6 a    
 7 about
 8 b    
 9 b    
10 it's 
11 great

но мне бы это понравилось вернуть

# A tibble: 9 x 1
  word 
  <chr>
1 let's
2 go   
3 to   
4 the  
5 q&a       
6 about
7 b&b
8 it's
9 great    

Есть ли способ отправить опцию на unnest_tokens(), чтобы сделать это, или отправить в регулярное выражение, которое он использует в настоящее время, и вручную настроить его, чтобы не включать амперсанд?

1 Ответ

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

Мы можем использовать token как regex

library(tidytext)
library(dplyr)
d %>% 
   unnest_tokens(word, txt, token="regex", pattern = "[\\s!,.]")
# A tibble: 9 x 1
#  word 
#  <chr>
#1 let's
#2 go   
#3 to   
#4 the  
#5 q&a  
#6 about
#7 b&b  
#8 it's 
#9 great
...