试着不计算虚拟变量中的复合词

时间:2018-02-21 04:00:42

标签: r

我正在尝试为产品制作一个虚拟变量而不会抓住包含产品的复合词。在上面的输出中,它将“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))

1 个答案:

答案 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
>