首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用quanteda的kwic定义regex模式中的可选元素?

如何用quanteda的kwic定义regex模式中的可选元素?
EN

Stack Overflow用户
提问于 2021-11-28 22:57:13
回答 1查看 29关注 0票数 0

我正在努力将stringi/stringr中的正则表达式‘翻译’成quantedakwic函数。

我如何才能获得"Jane Mayer“的所有实例,而不管她是否有中间名。请注意,我没有数据中所有现有中间名的列表。所以定义多个模式(每个中间名一个)是不可能的。

非常感谢!

代码语言:javascript
复制
library(quanteda)
library(tidyverse)
txt <- c("this is Jane Alexandra Mayer", 
         "this is Jane Mayer",
         "this is Jane Eli Mayer", 
         "this is Jane Burger")

txt_token <- tokens(txt)

my_pattern <- c("Jane .* Mayer")
kwic(txt_token, pattern=phrase(my_pattern), valuetype = "regex")
#> Keyword-in-context with 2 matches.                                               
#>  [text1, 3:5] this is | Jane Alexandra Mayer | 
#>  [text3, 3:5] this is |    Jane Eli Mayer    |

my_pattern <- c("Jane .? Mayer")
kwic(txt_token, pattern=phrase(my_pattern), valuetype = "regex")
#> Keyword-in-context with 2 matches.                                               
#>  [text1, 3:5] this is | Jane Alexandra Mayer | 
#>  [text3, 3:5] this is |    Jane Eli Mayer    |

my_pattern <- c("Jane.* Mayer")
kwic(txt_token, pattern=phrase(my_pattern), valuetype = "regex")
#> Keyword-in-context with 1 match.                                     
#>  [text2, 3:4] this is | Jane Mayer |

my_pattern <- c("Jane . Mayer")
kwic(txt_token, pattern=phrase(my_pattern), valuetype = "regex")
#> Keyword-in-context with 2 matches.                                               
#>  [text1, 3:5] this is | Jane Alexandra Mayer | 
#>  [text3, 3:5] this is |    Jane Eli Mayer    |

对于stringr,我将简单地使用:

代码语言:javascript
复制
str_extract(txt, regex("Jane.* Mayer"))
#> [1] "Jane Alexandra Mayer" "Jane Mayer"           "Jane Eli Mayer"      
#> [4] NA

reprex package于2021-11-28创建(v2.0.1)

代码语言:javascript
复制
EN

回答 1

Stack Overflow用户

发布于 2021-11-28 23:11:44

似乎需要传递另一个模式才能与Jane Mayer完全匹配

代码语言:javascript
复制
kwic(txt_token, pattern=phrase(c("Jane .* Mayer", "Jane Mayer")), valuetype = "regex")
# => Keyword-in-context with 3 matches.                                               
#    [text1, 3:5] this is | Jane Alexandra Mayer | 
#    [text2, 3:4] this is |      Jane Mayer      | 
#    [text3, 3:5] this is |    Jane Eli Mayer    | 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70148186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档