2

いくつかの製品名のリストが 2 つあります。私の問題は、「オペレーティングシステム」が「システム」、「冷却システム」などと一致していることです。ただし、"Operating"、"OS" とのみ一致する必要があります。別の例として、「Key Board」は「key」または「KB」と一致させる必要がありますが、「Mother Board」または単に「Board」とは一致させないでください。

2 番目の単語よりも最初の単語を重視するにはどうすればよいですか?

agrep()はRで使用しました。最初の例でも「システム」と「冷却システム」に一致します。その一致を回避する方法は?

また、「キーボード」を「KB」に、「オペレーティングシステム」を「OS」に対応させる機能・方法はありますか?

前もって感謝します。

4

1 に答える 1

1

これを行うための最も最適化された方法ではありませんが、これでタスクが実行されます。入力はリストではなくベクトルです。これが役立つことを願っています

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
于 2015-06-23T11:03:44.277 に答える