在計算ruby字數的邏輯時遇到一些麻煩。我的目標是傳入一些文本,並獲得數組中定義的某個類別的單詞的總數。所以,如果我給下面的變量,我想找出有什麼水果提到的詞的分數:通過數組遍歷數組(另一個Ruby字數)
content = "I went to the store today, and I bought apples, eggs, bananas,
yogurt, bacon, spices, milk, oranges, and a pineapple. I also had a fruit
smoothie and picked up some replacement Apple earbuds."
fruit = ["apple", "banana", "fruit", "kiwi", "orange", "pear", "pineapple", "watermelon"]
(我知道複數/奇異的是不相符的;只是一個例子)。這是我一直在試圖代碼:
content.strip
contentarray = content.downcase.split(/[^a-zA-Z]/)
contentarray.delete("")
total_wordcount = contentarray.size
IRB測試:
contentarray.grep("and")
=> ["and", "and", "and"]
contentarray.grep("and").count
=> 3
於是我嘗試:
fruit.each do |i|
contentarray.grep(i).count
end
=> ["apple", "banana", "fruit", "kiwi", "orange", "pear", "pineapple", "watermelon"]
它只是返回數組,沒有計數。如果它返回任何數字,我會將它們全部添加。我們的目標是要結束了:
fruitwordcount
=> 6/33
或
=> .1818181
我試着搜索,發現有很多的方法說的內容數組轉換成散列計數出現許多教程做的,但是當我只需要一個子集的計數時,就會給出每個單詞的計數。我似乎無法找到通過字符串數組搜索數組或字符串的好方法。我發現一些文章說要使用來自Multiset gem的直方圖,但這仍然給每一個字。任何幫助將非常感激;請原諒我的nberbery。
作品就像一個冠軍。謝謝! – Rootski 2015-02-09 11:02:50
不客氣。您現在可以[接受答案](http://stackoverflow.com/help/someone-answers),您認爲這是解決問題的最佳方案。 – cbliard 2015-02-10 08:09:18