我想在C#中创建一个简单的应用程序,它接受一组单词,然后返回数据集中所有单个单词的所有分组。
例如,给定汽车和自行车,从数据集中返回一组词组/词组合(带有找到的组合数)。
为了进一步澄清 - 给定一个名为“car”的类别,我希望看到一个带有“car”一词的单词分组列表。这个类别也可以是几个单词,而不仅仅是一个单词。
样本数据集为:
CAR
应该返回
car : for sale : 2
car : blue : 2
我想设置一个阈值,比方说20或更高,所以如果有超过20个带汽车的单词实例,则显示它们 - category
,words
,{ {1}},其中只知道count
; category
和words
由算法确定。
数据集在SQL Server 2008表中,我希望使用类似R的.Net实现来完成此任务。
我猜测实现这一目标的最佳方法可能是使用R编程语言,现在只关注R.Net。
我更愿意用.Net这样做,因为这是我最熟悉的,但愿意接受建议。
有经验的人可以引导我朝着正确的方向前进吗?
感谢。
答案 0 :(得分:0)
看来你的问题包括4个部分:
对于1,我认为这是一个不同的问题(参见RODBC
包),但我不会在这里处理,因为这不是你问题的主要部分。你已经离开了4.有点模糊,我认为这也是你问题的边缘。
第2部分可以使用正则表达式轻松处理:
countstring <- function(string, pattern){
stringcount <- sum(grepl(pattern, string, ignore.case=TRUE), na.rm=TRUE)
paste(deparse(substitute(string)), pattern, stringcount, sep=" : ")
}
此函数基本上获取字符串向量和要搜索的模式。它找到它们中的哪一个匹配并获得所做数字的总和(即计数)。然后它将这些打印在一个字符串中。例如:
car <- c("Another car for sale", "Blue car on the horizon", "For Sale - used car", "this car is painted blue")
countstring(car, "blue")
## [1] "car : blue : 2"
第3部分需要对功能进行少量更改
countstring <- function(string, pattern, threshold=20){
stringcount <- sum(grepl(pattern, string, ignore.case=TRUE), na.rm=TRUE)
if(stringcount >= threshold){
paste(deparse(substitute(string)), pattern, stringcount, sep=" : ")
}
}