我正在尝试为产品制作一个虚拟变量而不会抓住包含产品的复合词。在上面的输出中,它将“productdesign”计为标签$ product中的1。我试图找到严格抓住“产品”的语法。
library(NLP)
library(tm)
library(tidytext)
library(tidyverse)
library(topicmodels)
library(dplyr)
library(stringr)
library(purrr)
library(tidyr)
#sample dataset
tags <- c("product productdesign electronicdevice", "productdesign electronicdevice")
web <- c("hardware", "sunglasses")
tags <- data_frame(tags, web)
tags <- mutate(tags, product = ifelse(grepl("product", tags), 1, 0))
答案 0 :(得分:0)
您可以添加\\b
来表示单词的边界,或\\sproduct\\s
包含单词product
之前和之后的空格
> tags <- mutate(tags, product = ifelse(grepl("\\bproduct\\b", tags), 1, 0))
> tags
# A tibble: 2 x 3
tags web product
<chr> <chr> <dbl>
1 product productdesign electronicdevice hardware 1
2 productdesign electronicdevice sunglasses 0
>