我尝试在R中使用Regex提取非大写单词。数据包含几列(例如,单词、单词时长、音节、音节时长......),而在单词列中,有大量的单词要么大写,要么(如EAT),非资本化(例如参见),或放在大括号中(例如{VAO})。我想提取单词列中所有未大写的单词。以下是一个具有预期结果的小型示例 Dataframe 。
file word
1 sp
2 WHAT
3 ISN'
4 'EM
5 O
6 {PPC}
OUTCOME:
"sp", "{PPC}"
> unique(full_dat$word[!grepl("^[A-Z].*[A-Z]|\\d", full_dat$word) & !grepl(" [[:punct:]] ", full_dat$word)]
结果如下:
[1] "sp" "{OOV}"
[3] "O" "I"
[5] "A" NA
[7] "{XX}" "'S"
[9] "{LG}" "Y"
[11] "B" "'VE"
[13] "N" "{GAP_ANONYMIZATION_NAME}"
[15] "'EM" "W"
[17] "{GAP_ANONYMIZATION}" "K"
这看起来不错,因为我可以很容易地识别非大写的单词,但是这个列表中仍然有一些大写的单词....我如何修改代码,使它只显示小写单词和花括号中的单词?
1条答案
按热度按时间ffscu2ro1#
使用
stringr
库,您可以简单地执行以下操作:这将导致每个单词中的所有大写字母:
可以通过
na.omit
函数省略NA,也可以得到哪些位置有NA,即哪些位置不是大写的单词:但是,您也可以通过执行以下操作来查看不是大写单词的位置:
我希望这对你有帮助😀