Я хотел бы подсчитать количество раз, когда набор слов появляется в каждом абзаце в текстовом файле. Я могу подсчитать количество раз, когда набор слов появляется во всем тексте.Как подсчитать количество экземпляров конкретных слов в абзаце?
Мне было предложено, чтобы мой код был действительно неисправен, поэтому я просто спрошу, что я хотел бы сделать, и если вы хотите, вы можете посмотреть на код, который у меня внизу.
Итак, учитывая, что в «frequency_count.txt» есть слова «яблочная груша», я хочу знать, как часто «яблоко» появляется в каждом абзаце отдельного файла «test_essay.txt», как часто появляется груша и т. д., а затем для того, чтобы эти числа были распечатаны в серии строк чисел, каждый из которых соответствует абзацу.
Например:
apple, pear, grape, melon, kiwi
3,5,2,7,8
2,3,1,6,7
5,6,8,2,3
Где каждая строка соответствует одному из пунктов.
Я очень, очень новый для Руби, так что спасибо за ваше терпение.
output_file = '/Users/yirenlu/Quora-Personal-Analytics/weka_input6.csv'
o = File.open(output_file, "r+")
common_words = '/Users/yirenlu/Quora-Personal-Analytics/frequency_count.txt'
c = File.open(common_words, "r")
c.each_line{|$line1|
words1 = $line1.split
words1.each{|w1|
the_file = '/Users/yirenlu/Quora-Personal-Analytics/test_essay.txt'
f = File.open(the_file, "r")
rows = File.readlines("/Users/yirenlu/Quora-Personal-Analytics/test_essay.txt")
text = rows.join
paragraph = text.split(/\n\n/)
paragraph.each{|p|
h = Hash.new
puts "this is each paragraph"
p.each_line{|line|
puts "this is each line"
words = line.split
words.each{|w|
if w1 == w
if h.has_key?(w)
h[w1] = h[w1] + 1
else
h[w1] = 1
end
$x = h[w1]
end
}
}
o.print "#{$x},"
}
}
o.print "\n"
o.print "#{$line1}"
}
Я бы предположил, что использование более описательных имен переменных и последовательных отступов (особенно для блоков) поставит вопрос намного легче ответить. Вы даже можете найти ошибку самостоятельно! –
Вы не «в основном там» вообще. Я попытался улучшить ваш код, но выясняется, что проблема заключается не только в обработке хэша. В коде, который вы опубликовали, есть всевозможные ошибки. Как отмечает Палмер, вы даже не делаете последовательных отступов, поэтому люди не захотят читать ваш код. Легче выкинуть свой код и спросить кого-то, что вы хотите сделать. – sawa
Это домашнее задание? –