Re: [問題] 將文字內容歸類成特定類別

看板R_Language作者 (討厭有好心推文後刪文者)時間9年前 (2015/07/24 00:02), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
qdf <- data.frame( que = c("賣多少","有現貨嗎","多少錢","有貨嗎","有故障嗎", "有現貨嗎","多少錢","有故障嗎"), id = 1:8, group = NA ) glist <- list() glist$詢價 <- grep("(多少)|錢", qdf$que) glist$供貨 <- grep("(現貨)|貨", qdf$que) glist$故障 <- grep("(故障)|(壞掉)", qdf$que) print(glist) qdf$group[glist$詢價] <- "詢價" qdf$group[glist$供貨] <- "供貨" qdf$group[glist$故障] <- "故障" print(qdf) 我不是這方面的專家,只是試著找一個解法給你。 但請你注意一下,如果 glist 的結果會有重覆的列號, 也就是一個 case 可歸於超過一類, 那最後 qdf$group 的處理就不洽當了。 另外,string searching 我是靠 grep(), 但可能有更適合的辦法。 ※ 引述《ardodo (米蟲)》之銘言: : 謝謝a版主提供的解法,不過我想嘗試的是文字探勘的方式,我可能表達的不夠清楚Orz : 我想要的判斷方式如下: : 1. 看到"多少" 或 "錢"就判斷為"詢價" : 2. 看到"現貨" 或 "貨"就判斷為"供貨" : 3. 看到"故障"就判斷為"狀況" : 懇請回答,感謝 : ※ 引述《andrew43 (討厭有好心推文後刪文者)》之銘言: : : # 你需要的應該就是 merge() : : qdf <- data.frame( : : que = c("賣多少","有現貨嗎","多少錢","有貨嗎","有故障嗎", : : "有現貨嗎","多少錢","有故障嗎"), : : id = 1:8 : : ) : : # 建立對照表 : : ref <- data.frame( : : que = c("賣多少","有現貨嗎","多少錢","有貨嗎","有故障嗎"), : : ans = c("詢價", "供貨", "詢價", "供貨", "狀況") : : ) : : # 合併 : : merge(qdf, ref, by.x = "que", by.y = "que") : : # 因為合併的對應欄位在 ref 和 qdf 都叫 "que" : : # 所以可以簡化成 : : merge(qdf, ref, by = "que") -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.37.172 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1437667328.A.F9F.html

07/24 09:26, , 1F
謝謝a版主提供的解法,這對我有幫助
07/24 09:26, 1F
文章代碼(AID): #1LiH00-V (R_Language)
文章代碼(AID): #1LiH00-V (R_Language)