我在 Ruby 1.9.2p320 上使用 Rails 3.2.11。
我创建了一种summarized()
方法来显示某些关键字出现在以文本字符串形式存储的一系列 1,000 到 15,000 个单词的文档中的位置。每个文档可以包含从 0 到 100 次的每个关键字。
我有:
ActiveRecord::Schema.define(:version => 20130404000559) do
create_table "references", :force => true do |t|
t.text "source_text"
end
end
当我打电话@reference.source_text.summarize(keywords)
时,以下方法非常慢,即使只有一个keyword
在keywords
:
class String
def summarized(keywords)
safe_text = Array.new
result = String.new
keywords.each do |keyword|
safe_text << self.strip_tags.gsub(/\n|\r/, " ").gsub(" ", " ").scan(/\w*.{0,250}#{keyword}.{0,250}\w*/im)
end
return safe_text.flatten.uniq
end
end
我怎样才能加快速度?
更新:我现在正在研究strip_tags
可能至少是罪魁祸首之一的可能性。