更改 bing 词典中单词的值
Change value of words in bing lexicon
我正在使用 R Studio 分析一项调查。我正在使用 tidytext 包中的 Bing 情感词典来做到这一点。
有些词在我的调查中没有正确的含义,特别是 'tender' 被编码为积极的,但我的受访者的意思是 'tender' 是消极的(痛苦)。我知道如何从 bing tibble 中删除一个词并添加一个新词,但我怎样才能简单地改变该词的含义?
例如:
structure(list(word = c("pain", "tender", "sensitive", "headaches",
"like", "anxiety"), sentiment = c("negative", "positive", "positive",
"negative", "positive", "negative"), n = c(351L, 305L, 279L,
220L, 200L, 196L)), row.names = c(NA, 6L), class = "data.frame")
我希望它看起来像:
structure(list(word = c("pain", "tender", "sensitive", "headaches",
"like", "anxiety"), sentiment = c("negative", "negative", "positive",
"negative", "positive", "negative"), n = c(351L, 305L, 279L,
220L, 200L, 196L)), row.names = c(NA, 6L), class = "data.frame")
谢谢!
运行 行
df$sentiment <- ifelse(df$word == "tender", "positive", df$sentiment)
将有效地改变 sentiment
向量的任何实例,其中 word
向量是“温柔的”,因此它显示为“积极的”。任何其他实例将保持原样。
请注意,如果您还想将其他词的情绪更改为正面,您可以这样做:
df$sentiment <- ifelse(df$word %in% c("tender", "anotherword", "etc"), "positive", df$sentiment)
在 tidyverse
(tidytext
构建)中进行这种重新编码的方法通常是:
library(tidyverse)
df %>%
mutate(sentiment = case_when(
word == "tender" ~ "negative",
TRUE ~ sentiment # means leave if none of the conditions are met
))
#> word sentiment n
#> 1 pain negative 351
#> 2 tender negative 305
#> 3 sensitive positive 279
#> 4 headaches negative 220
#> 5 like positive 200
#> 6 anxiety negative 196
case_when
遵循与 ifelse
相同的逻辑,但您可以根据需要评估任意多个条件,因此非常适合重新编码多个值。 ~
的左侧评估条件,右侧表示满足此条件时的值。您可以设置默认值,如 case_when
.
中最后一行所示
我正在使用 R Studio 分析一项调查。我正在使用 tidytext 包中的 Bing 情感词典来做到这一点。
有些词在我的调查中没有正确的含义,特别是 'tender' 被编码为积极的,但我的受访者的意思是 'tender' 是消极的(痛苦)。我知道如何从 bing tibble 中删除一个词并添加一个新词,但我怎样才能简单地改变该词的含义?
例如:
structure(list(word = c("pain", "tender", "sensitive", "headaches",
"like", "anxiety"), sentiment = c("negative", "positive", "positive",
"negative", "positive", "negative"), n = c(351L, 305L, 279L,
220L, 200L, 196L)), row.names = c(NA, 6L), class = "data.frame")
我希望它看起来像:
structure(list(word = c("pain", "tender", "sensitive", "headaches",
"like", "anxiety"), sentiment = c("negative", "negative", "positive",
"negative", "positive", "negative"), n = c(351L, 305L, 279L,
220L, 200L, 196L)), row.names = c(NA, 6L), class = "data.frame")
谢谢!
运行 行
df$sentiment <- ifelse(df$word == "tender", "positive", df$sentiment)
将有效地改变 sentiment
向量的任何实例,其中 word
向量是“温柔的”,因此它显示为“积极的”。任何其他实例将保持原样。
请注意,如果您还想将其他词的情绪更改为正面,您可以这样做:
df$sentiment <- ifelse(df$word %in% c("tender", "anotherword", "etc"), "positive", df$sentiment)
在 tidyverse
(tidytext
构建)中进行这种重新编码的方法通常是:
library(tidyverse)
df %>%
mutate(sentiment = case_when(
word == "tender" ~ "negative",
TRUE ~ sentiment # means leave if none of the conditions are met
))
#> word sentiment n
#> 1 pain negative 351
#> 2 tender negative 305
#> 3 sensitive positive 279
#> 4 headaches negative 220
#> 5 like positive 200
#> 6 anxiety negative 196
case_when
遵循与 ifelse
相同的逻辑,但您可以根据需要评估任意多个条件,因此非常适合重新编码多个值。 ~
的左侧评估条件,右侧表示满足此条件时的值。您可以设置默认值,如 case_when
.