我有一个关键字数组,可以有可变长度。对于这个例子,假设有 50 个:
keywords = ['dog','cat','monkey'...'bird']
我有一个句子数组(同样是可变长度),我想循环遍历,搜索每个关键字。
sentences = [ ['My dog ate cat food'], ['I went to the store.'], ... ]
如果句子包含任何关键字,那么我将把它移到一个新的“匹配”数组中。所以在 Ruby 中,我的代码看起来像这样:
sentences.each do |sentence|
keywords.each do |keyword|
if sentence.match(/\b#{keyword}\b/i)
matched << sentence
end
end
end
这需要相当长的时间,而且似乎效率很低——特别是如果我有一个大的关键字列表和一个大的句子列表。我是第一个承认我的 Ruby 开发还不是很好的人——有没有更简单、更有效的方法来做到这一点?
我正在使用 MongoDB 来存储关键字和句子。如果有更好的方法使用数据库,我很想探索它。