如何使用R识别文本指定关键词并输出对应布尔判定结果
R实现文本关键词匹配与多匹配标记
完整实现代码
# 1. 构造输入数据 body <- c(" i want a computer", "use my laptop", "buy a macbook", "found a good deal on macbook and windows laptop") words_to_be_identified <- c("Computer", "laptop", "MacBook") # 2. 逐关键词匹配(默认忽略大小写,适配关键词与文本大小写不一致的场景) match_matrix <- sapply(words_to_be_identified, function(keyword) { grepl(pattern = keyword, x = body, ignore.case = TRUE) }) # 3. 新增Multiple列:判断单条文本是否匹配多个关键词 match_matrix <- cbind(match_matrix, Multiple = rowSums(match_matrix) > 1) # 4. 按期望格式输出(转置后行对应关键词/标记,列对应原文本顺序) t(match_matrix)
输出结果
运行上述代码后输出结果和要求完全一致:
[,1] [,2] [,3] [,4] Computer TRUE FALSE FALSE FALSE laptop FALSE TRUE FALSE TRUE MacBook FALSE FALSE TRUE TRUE Multiple FALSE FALSE FALSE TRUE
可选调整说明
- 若需要严格区分大小写匹配,删除
grepl函数中的ignore.case = TRUE参数即可 - 若需要将结果转为数据框格式做后续分析,执行
result_df <- as.data.frame(match_matrix)即可
内容的提问来源于stack exchange,提问作者Reshmi Kumpakha
相关产品推荐
相关产品推荐

