检查一个句子是否包含数组中的任何单词
问题描述:
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
并在splitDescription
的new_score
每个keyword
由0.5上升。
我在此刻尝试此代码,但它无法正常工作。
答
你几乎有:
splitDescription.select { |word| keywords.include?(word) }
因为这里keywords
是一个数组中查找单个word
在
更强大的解决方案是:
new_score += 0.5 * (splitDescription & keywords).size
后者将相交keywords
数组和分解描述,计算交集的大小并通过这个分值增加分数两个。
您可能希望使用'.split',而不是'split('')',因为前者相当于'.split(/ \ s + /)',它会吞噬额外的空格。 –