rks*_*rst 5 c# string algorithm
假设我在阵列中有一组关键词{"奥运会","体育网球最佳","网球","网球规则"}
然后我有一个大的列表(一次最多50个)字符串(或实际上是推文),因此最多140个字符.
我想查看每个字符串,看看那里有哪些关键字.在关键字由多个单词组成的情况下,例如"体育网球最佳",单词不必在字符串中,但所有单词都必须出现.
我无法找到一种有效地实现这一目标的算法.
你们有这方面的建议吗?谢谢!
编辑:为了更好地解释每个关键字都有与之关联的ID,所以{1:"奥运会",2:"体育网球最佳",3:"网球",4:"网球规则"}
我想查看字符串/推文列表,看看哪组关键字匹配.输出应该是,这条推文属于关键字#4.(可以进行多次匹配,因此匹配关键字2的任何内容也会匹配3 - 因为它们都包含网球).
当关键字中有多个单词时,例如"体育网球最佳",它们不必一起出现,但必须全部出现.例如,这将正确匹配:"我只是打网球,我喜欢运动,它是最好的"...因为这个字符串包含"体育网球最佳",它将匹配并与关键字ID(本例中为2)相关联.
编辑2:不区分大小写.
IEnumerable<string> tweets, keywords;
var x = tweets.Select(t => new
{
Tweet = t,
Keywords = keywords.Where(k => k.Split(' ')
.All(t.Contains))
.ToArray()
});
Run Code Online (Sandbox Code Playgroud)