R 如何在斜杠前后提取字符串
我正在研究R中的词性标记。我有一个字符串,其词性如下(格式:Word/POS_标记)。我想在一列中提取单词,在另一列中提取相应的词性标记,并在数据集的第三列中提取频率。 此外,在加载到数据集之前,我需要删除文本中的任何标点符号或特殊字符。我对正则表达式不太熟悉。你能帮我解决这个问题吗 (请参考应用POS_标签前的句子。-->“我喜欢下周参加网球比赛,我将参加一场比赛。我喜欢弹吉他。”) 示例:R 如何在斜杠前后提取字符串,r,regex,R,Regex,我正在研究R中的词性标记。我有一个字符串,其词性如下(格式:Word/POS_标记)。我想在一列中提取单词,在另一列中提取相应的词性标记,并在数据集的第三列中提取频率。 此外,在加载到数据集之前,我需要删除文本中的任何标点符号或特殊字符。我对正则表达式不太熟悉。你能帮我解决这个问题吗 (请参考应用POS_标签前的句子。-->“我喜欢下周参加网球比赛,我将参加一场比赛。我喜欢弹吉他。”) 示例:“I/PRP like/IN to/to play/VB tennis/NN Conference/NN
“I/PRP like/IN to/to play/VB tennis/NN Conference/NN Next/JJ week/NN,/,和/CC I/PRP will/MD参与/VB on/IN/IN a/DT play/NN./.I/PRP like/IN playing/VBG吉他/NN./”
注意:在上面的示例中,我们有3次出现“I”和2次出现“like”。我需要一个数据集中的字数以及下面的字数
Word POS_Tag Count
I PRP 3
like IN 2
to TO 1
play VB 1
tennis NN 1
tournament NN 1
Next JJ 1
week NN 1
and CC 1
will MD 1
partcipate VB 1
on IN 1
a DT 1
play NN 1
playing VBG 1
guitar NN 1
谢谢。我们用str\u extract\u all
(fromstringr
)从字符串中提取单词(\\w+
),然后创建一个数据。表中有两列,分别来自向量('v1')的备选单词,按“Word”和“POS标签”分组,得到元素的数量(.N
)
数据
str1非常感谢您的支持。这对我帮助很大!!:)嗨,akrun,我在下面的例子中遇到了一些困难。“I/PRP did/VBD n t/RB经验丰富/VBN多/JJ服务/NN差异化/NN”。结果并不像预期的那样出现,因为在“t”中有撇号。有什么解决办法吗?谢谢@Parthasarathybalaman能否请你以新问题的形式发布
library(stringr)
library(data.table)
v1 <- str_extract_all(str1, "\\w+")[[1]]
data.table(Word = v1[c(TRUE, FALSE)], POS_Tag = v1[c(FALSE, TRUE)])[
, .(Count = .N), .(Word, POS_Tag)]
# Word POS_Tag Count
# 1: I PRP 3
# 2: like IN 2
# 3: to TO 1
# 4: play VB 1
# 5: tennis NN 1
# 6: tournament NN 1
# 7: Next JJ 1
# 8: week NN 1
# 9: and CC 1
#10: will MD 1
#11: participate VB 1
#12: on IN 1
#13: a DT 1
#14: play NN 1
#15: playing VBG 1
#16: guitar NN 1
library(tidyverse)
data_frame(string = str1) %>%
separate_rows(string) %>%
group_by(grp = rep(c("Word", "POS_Tag"), length.out = n())) %>%
mutate(i1 = row_number()) %>%
spread(grp, string) %>% select(-i1) %>%
count(Word, POS_Tag) %>%
filter(Word != ".")
# A tibble: 16 x 3
# Word POS_Tag n
# <chr> <chr> <int>
# 1 a DT 1
# 2 and CC 1
# 3 guitar NN 1
# 4 I PRP 3
# 5 like IN 2
# 6 Next JJ 1
# 7 on IN 1
# 8 participate VB 1
# 9 play NN 1
#10 play VB 1
#11 playing VBG 1
#12 tennis NN 1
#13 to TO 1
#14 tournament NN 1
#15 week NN 1
#16 will MD 1
str1 <- "I/PRP like/IN to/TO play/VB tennis/NN tournament/NN Next/JJ week/NN ,/, and/CC I/PRP will/MD participate/VB on/IN a/DT play/NN ./. I/PRP like/IN playing/VBG guitar/NN ./."