我正在嘗試創建一個程序來計算我創建的文本文件中的詞頻。我有名爲moms_letter.txt
一個文本文件,這是我的代碼:在Ruby中打開文本文件
word_count = {}
File.open("moms_letter.txt", "r") do |f|
f.each_line do |line|
words = line.split(' ').each do |word|
word_count[word] += 1 if word_count.has_key? word
word_count[word] = 1 if not word_count.has_key? word
end
end
end
puts word_count
我得到的問題是,當我去運行該文件,我得到的錯誤:
there is no such file or directory - moms_letter.txt (Errno: : ENOENT)
不明白爲什麼這是在創建文本文件時發生的。 任何幫助表示讚賞。
我也是Ruby的新手,所以感謝耐心。
我很確定它在同一個目錄中,因爲這兩個文件都在同一個文件夾中。也許這是我的問題。 – Patrick
我最終確定了這一點,但現在我試圖弄清楚是否有辦法按照從最大到最小的順序列出特定單詞的頻率。所以基本上現在它只是列出了單詞的出現次數,但是,我希望它們根據出現次數來列出。你知道一個辦法嗎? – Patrick
這是一個常見的技術面試白板問題,所以我真的應該爲你準備好一個快速的答案,但我不知道。我認爲最好的方法是創建一個散列,然後遍歷文檔並將該單詞作爲關鍵字。然後增加每個單詞出現的值。然後你可以按值排序散列。希望有所幫助! –