仅包含主题标签的推文的正则表达式
Regular expression for tweets that contain only hashtags
我正在使用 R 并且有一个很大的推文数据框。我想要一个 grep 调用,它会 select 只由主题标签组成的推文(想从最终数据帧中排除这些)。
我最初的 grep 努力:
hashtagonly_tweets_INDEX = grep("^#\w*[^\w]", allTweets$V1,
value=F,
ignore.case = T,
fixed=F)
我希望这会 select 多个以主题标签 ^#\w* 开头的单词,而不是 select 个没有主题标签 [^\w] 的单词。
但是,我现在显然 运行 没有天赋,因为它收集的推文类型仍然包含主题标签中的文本,例如:
#wtf is even happening right now. this truck is driving 50 down the center of the highway. #learntodrive
#WhatGrindsMyGears When someone pulls out in front of me then never proceeds to go the speed limit or above. #roadrage
#Traffic in #Westminster #travel #roadrage #transport #London #tourism #sightseeing #dark #clouds
非常感谢任何建议,
谢谢
我不确定我是否理解你的问题,这里有一个正则表达式匹配仅包含主题标签的推文:
^\s*(?:#\w+\s*)+$
要确定特定推文是否只有主题标签,您可以使用 strsplit 对其进行标记化,然后在列表中搜索不以“#”开头的条目。考虑 tweet1(仅主题标签)和 tweet2(主题标签加单词)。
tweet1 <- "#Traffic #in #Westminster #travel #roadrage #transport #London #tourism #sightseeing #dark #clouds"
tweet2 <- "#Traffic in #Westminster #travel #roadrage #transport #London #tourism #sightseeing #dark #clouds"
haswords <- function(tweet) {
strings <- strsplit(tweet,' ')
for (word in 1:length(strings[[1]])) {
if (substring(strings[[1]][word],1,1) != '#') {
return (TRUE)
}
}
FALSE
}
函数 haswords()
returns tweet2 为 TRUE,tweet1 为 FALSE。
我正在使用 R 并且有一个很大的推文数据框。我想要一个 grep 调用,它会 select 只由主题标签组成的推文(想从最终数据帧中排除这些)。
我最初的 grep 努力:
hashtagonly_tweets_INDEX = grep("^#\w*[^\w]", allTweets$V1,
value=F,
ignore.case = T,
fixed=F)
我希望这会 select 多个以主题标签 ^#\w* 开头的单词,而不是 select 个没有主题标签 [^\w] 的单词。
但是,我现在显然 运行 没有天赋,因为它收集的推文类型仍然包含主题标签中的文本,例如:
#wtf is even happening right now. this truck is driving 50 down the center of the highway. #learntodrive
#WhatGrindsMyGears When someone pulls out in front of me then never proceeds to go the speed limit or above. #roadrage
#Traffic in #Westminster #travel #roadrage #transport #London #tourism #sightseeing #dark #clouds
非常感谢任何建议,
谢谢
我不确定我是否理解你的问题,这里有一个正则表达式匹配仅包含主题标签的推文:
^\s*(?:#\w+\s*)+$
要确定特定推文是否只有主题标签,您可以使用 strsplit 对其进行标记化,然后在列表中搜索不以“#”开头的条目。考虑 tweet1(仅主题标签)和 tweet2(主题标签加单词)。
tweet1 <- "#Traffic #in #Westminster #travel #roadrage #transport #London #tourism #sightseeing #dark #clouds"
tweet2 <- "#Traffic in #Westminster #travel #roadrage #transport #London #tourism #sightseeing #dark #clouds"
haswords <- function(tweet) {
strings <- strsplit(tweet,' ')
for (word in 1:length(strings[[1]])) {
if (substring(strings[[1]][word],1,1) != '#') {
return (TRUE)
}
}
FALSE
}
函数 haswords()
returns tweet2 为 TRUE,tweet1 为 FALSE。