可変長のキーワードの配列があります。この例では、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 を使用してキーワードと文章を保存しています。データベースを使用したより良い方法があれば、ぜひ検討したいと思います。