乱雑なタイトルのリストがあります (1000 としましょう)。私が作成した少数のジャンルに一致する「キーワード」を分析したいこれらのタイトル (タイトルはモデルではありませんが、ジャンルはモデルです)。
たとえば、最初のタイトル文字列が"awesome playlist of house, EDM and ambient"
さて、私も 15 を持っているとしましょうGenres
。それぞれに属性がありますname
私の最終的な目標は、そのタイトル文字列にジャンルを割り当てたいということです。これは、文字列の正規化を行ってから、.include?
しかし、同義語があると役に立ちません。たとえば、私の @genre.name は と呼ばれchill
、上記の文字列に適用する必要ambient
があります。同様に、ダンス ミュージックの @genre.name は と呼ばれdance
、上記の文字列に含める必要がEDM
あります (edm = エレクトロニック ダンス ミュージック)
だから私がやりたいのは、ジャンルごとに 10 ほどの同義語を追加して、それらもチェックできるようにすることです。
問題は、ループ内でこれを行う方法がわからないことです.ループ内にループがあると思いますか?
これは、同義語のない「単一レベル」の私のコードです
def determine_genres(title)
relevant_genres = []
@genres.each do |genre|
if normalize_string(title).include? normalize_string(genre.name)
relevant_genres << genre.id
end
end
relevant_genres
end