str_replace_all 基于使用 r 的数据框的句子
str_replace_all on sentence based on dataframe using r
例句
sentence <-"Mr. Smith moved to San Francisco in December."
这是从 spacyr 包中提取的实体:
spacy_extract_entity(sentence)
和查找列表我想为 ent_type
分配我自己的十六进制代码
ent_type <- c('PERSON', 'ORG', 'LOC', 'DATE')
hex <- c('#336', '#F3C', '#7F7', '#FF0')
我如何 return ent_type 和十六进制值并使用 str_replace_all:
Mr. Smith(PERSON)-#336 moved to San Francisco(LOC)-#7F7 in December(DATE)-#FF0.
要使此代码正常工作,您需要先安装此软件包:devtools::install_github("bmewing/mgsub")
。
我还使用 tibble
包来创建您在原始 post 中共享的模型数据框。
注意:stringr
中的 str_replace_all
将不起作用,因为它不会对同一字符串进行多次替换。有关精彩讨论,请参阅:http://thug-r.life/post/2018-01-10-safe-multiple-string-substitutions/.
# You need to install mgsub: devtools::install_github("bmewing/mgsub")
sentence <-"Mr. Smith moved to San Francisco in December."
df <- tibble::tribble(
~text, ~ent_type,
"Smith", "PERSON",
"San Francisco", "LOC",
"December", "DATE")
text2entity <- df$ent_type
names(text2entity) <- df$text
ent_type <- c('PERSON', 'ORG', 'LOC', 'DATE')
hex <- c('#336', '#F3C', '#7F7', '#FF0')
entity2hex <- sprintf("(%s)-%s", ent_type, hex)
names(entity2hex) <- ent_type
text2hex <- sprintf("%s%s", names(text2entity), entity2hex[df$ent_type])
names(text2hex) <- df$text
mgsub::mgsub(sentence,pattern=df$text,replacement=text2hex)
#> [1] "Mr. Smith(PERSON)-#336 moved to San Francisco(LOC)-#7F7 in December(DATE)-#FF0."
例句
sentence <-"Mr. Smith moved to San Francisco in December."
这是从 spacyr 包中提取的实体:
spacy_extract_entity(sentence)
和查找列表我想为 ent_type
分配我自己的十六进制代码ent_type <- c('PERSON', 'ORG', 'LOC', 'DATE')
hex <- c('#336', '#F3C', '#7F7', '#FF0')
我如何 return ent_type 和十六进制值并使用 str_replace_all:
Mr. Smith(PERSON)-#336 moved to San Francisco(LOC)-#7F7 in December(DATE)-#FF0.
要使此代码正常工作,您需要先安装此软件包:devtools::install_github("bmewing/mgsub")
。
我还使用 tibble
包来创建您在原始 post 中共享的模型数据框。
注意:stringr
中的 str_replace_all
将不起作用,因为它不会对同一字符串进行多次替换。有关精彩讨论,请参阅:http://thug-r.life/post/2018-01-10-safe-multiple-string-substitutions/.
# You need to install mgsub: devtools::install_github("bmewing/mgsub")
sentence <-"Mr. Smith moved to San Francisco in December."
df <- tibble::tribble(
~text, ~ent_type,
"Smith", "PERSON",
"San Francisco", "LOC",
"December", "DATE")
text2entity <- df$ent_type
names(text2entity) <- df$text
ent_type <- c('PERSON', 'ORG', 'LOC', 'DATE')
hex <- c('#336', '#F3C', '#7F7', '#FF0')
entity2hex <- sprintf("(%s)-%s", ent_type, hex)
names(entity2hex) <- ent_type
text2hex <- sprintf("%s%s", names(text2entity), entity2hex[df$ent_type])
names(text2hex) <- df$text
mgsub::mgsub(sentence,pattern=df$text,replacement=text2hex)
#> [1] "Mr. Smith(PERSON)-#336 moved to San Francisco(LOC)-#7F7 in December(DATE)-#FF0."