Ruby - Count Occurrences of a Specific Word in a File

1. Introduction

Analyzing textual data often requires looking for specific patterns or words. For instance, understanding how often a certain word appears can be pivotal for sentiment analysis, SEO optimizations, or academic research. This guide illustrates how to create a Ruby program to count the occurrences of a specific word in a file.

2. Program Steps

1. Specify the path of the file you want to check.

2. Define the word you want to search for.

3. Open the file in reading mode.

4. Read the file's content line by line.

5. For each line, count occurrences of the specified word.

6. Accumulate the count for each line.

7. Display the total occurrences of the word.

3. Code Program

# Specify the path of the file you want to check file_path = "sample_file.txt" # Specify the word you want to search for target_word = "Ruby" # Initialize a counter for the occurrences occurrences = 0 # Open and read the file File.open(file_path, "r") do |file| file.each_line do |line| # Count occurrences of the target word in the line occurrences += line.scan(target_word).size end end # Print the occurrences puts "The word '#{target_word}' occurred #{occurrences} times in the file #{file_path}." 

Output:

The word 'Ruby' occurred 25 times in the file sample_file.txt. 

Explanation:

1. file_path = "sample_file.txt": This line designates the path or name of the file you intend to inspect.

2. target_word = "Ruby": The word you're interested in counting its occurrences.

3. File.open(file_path, "r") do |file|: The open method from the File class opens the specified file in reading mode.

4. file.each_line do |line|: This iterates through each line of the file.

5. occurrences += line.scan(target_word).size: The scan method searches for all occurrences of the target_word in a line. We then determine the size of the resulting array, which represents the count of occurrences in that line.

6. puts "The word '#{target_word}' occurred #{occurrences} times in the file #{file_path}.": We display the total occurrences of the specified word.


Comments