检查一个句子是否包含数组中的任何单词

问题描述:

splitDescription = work.workdescription.downcase.split(' ') 

keywords = ['teamwork', 'developed', 'enhanced', 'transformed', 'achieved','grew', 'introduced', 'project', 'awarded', 
      'planned','supervised','created','designed','discovered','evaluated','promoted','represented','completed', 
      'devised','liaised','controlled','researched','organised','achieved','managed','analysed','assessed','conducted', 
      'solved','responsible for','responsibilities'] 

splitDescription.select {|word| word.include?(keywords)}.each do |word| 
    new_score += 0.5 
end 

我有一个splitDescription它分割并存储说明。检查一个句子是否包含数组中的任何单词

我想看看是否有任何关键字都在splitDescription并在splitDescriptionnew_score每个keyword由0.5上升。

我在此刻尝试此代码,但它无法正常工作。

+0

您可能希望使用'.split',而不是'split('')',因为前者相当于'.split(/ \ s + /)',它会吞噬额外的空格。 –

你几乎有:

splitDescription.select { |word| keywords.include?(word) } 

因为这里keywords是一个数组中查找单个word

更强大的解决方案是:

new_score += 0.5 * (splitDescription & keywords).size 

后者将相交keywords数组和分解描述,计算交集的大小并通过这个分值增加分数两个。

+2

我也推荐带交叉点的解决方案。 – oliviergg

+0

我觉得我没有把问题写出来,但是对于每个发现的单词,得分应该上升0.5,所以如果在splitDescription中找到5个单词,那么总得分应该达到2.5 @mudasobwa –

+0

而这正是这个代码呢。 – mudasobwa