我有一个乱七八糟的标题列表(比如说 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