我有一些產品名稱的兩個列表。我的問題是「操作系統」與「系統」,「冷卻系統」等匹配。但它只能與「操作」,「操作系統」相匹配。另一個例子是「Key Board」應該與「key」或「KB」匹配,但不能與「Mother Board」或「Board」匹配。agrep字符串匹配R
如何重視第一個詞而不是第二個詞?
我在R中使用了agrep()
它也與第一個例子中的「系統」和「冷卻系統」相匹配。如何避免這種匹配?
是否有任何功能/方法匹配「鍵盤」與「KB」和「操作系統」與「操作系統」?
在此先感謝。
我有一些產品名稱的兩個列表。我的問題是「操作系統」與「系統」,「冷卻系統」等匹配。但它只能與「操作」,「操作系統」相匹配。另一個例子是「Key Board」應該與「key」或「KB」匹配,但不能與「Mother Board」或「Board」匹配。agrep字符串匹配R
如何重視第一個詞而不是第二個詞?
我在R中使用了agrep()
它也與第一個例子中的「系統」和「冷卻系統」相匹配。如何避免這種匹配?
是否有任何功能/方法匹配「鍵盤」與「KB」和「操作系統」與「操作系統」?
在此先感謝。
我已經爲此寫了一個函數,而不是最優化的方法來完成它,但是這會完成任務。輸入是向量不列表,希望這有助於
stringMatch<-function(search.string,inputstring,pattern=" "){
stringsplit<-unlist(str_split(search.string,pattern))
firstletter<-c()
for(i in seq(1,length(stringsplit))){firstletter<-paste(firstletter,
substring(stringsplit[i],1,1),sep="")}
search.string.l<-tolower(search.string)
firstletter.l<-tolower(firstletter)
matchstring<-grep(paste("\\b",search.string.l,"\\b","|","\\b",firstletter.l,"\\b"
,sep=""),tolower(inputstring))
return(matchstring)
}
test1<-c('hello p','helbbo','hello test','HP')
search.string<-'HP'
[1] 4
你想對比賽做什麼?替換它們?刪除它們?選擇他們?請包括您的產品列表的一些示例數據,並提供一個可重複的示例:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – grrgrrbla
你看過同義詞功能在qdap包中? – lawyeR
@lawyeR是的,我看着同義詞功能。但我認爲這與我的問題沒有任何關係。因爲我的數據可能有拼寫錯誤,可能是簡單的形式,或只是一半的部分。我想,沒有必要尋找類似的詞。 – Kavipriya