0% found this document useful (0 votes)
5 views3 pages

Count Word and Synonyms in Texts

The document outlines a method for counting occurrences of a target word and its synonyms in text documents using computational thinking principles. It breaks down the process into four pillars: decomposition, pattern recognition, abstraction, and algorithm design, providing a flowchart and pseudocode for clarity. Additionally, it includes a Python implementation that reads text files, counts occurrences, and outputs the results in a dictionary format.

Uploaded by

nenhiyajemu
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views3 pages

Count Word and Synonyms in Texts

The document outlines a method for counting occurrences of a target word and its synonyms in text documents using computational thinking principles. It breaks down the process into four pillars: decomposition, pattern recognition, abstraction, and algorithm design, providing a flowchart and pseudocode for clarity. Additionally, it includes a Python implementation that reads text files, counts occurrences, and outputs the results in a dictionary format.

Uploaded by

nenhiyajemu
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

To solve the problem of counting the number of occurrences of a word and its synonyms in a

corpus of text documents using computational thinking, we can break it down into the four pillars
of computational thinking: decomposition, pattern recognition, abstraction, and algorithm
design.

1. Decomposition:
- Break the problem into smaller, manageable parts:
- Read the text documents from the corpus.
- Identify the target word and its synonyms.
- Count occurrences of the target word and each synonym in the text.
- Summarize the counts in a readable format.

2. Pattern Recognition:
- Look for patterns in how words are used in the text:
- Words may appear in different forms (e.g., plural, tense variations).
- Synonyms may be used interchangeably in similar contexts.
- Recognizing these patterns will help in ensuring accurate counting.

3. Abstraction:
- Focus on the essential features of the problem:
- Create a list of synonyms for the target word.
- Define what constitutes a "count" (e.g., case sensitivity, punctuation).
- This helps in simplifying the problem and removing unnecessary details.

4. Algorithm Design:
- Create a step-by-step procedure to solve the problem:
1. Load the text documents.
2. Define the target word and its synonyms.
3. Initialize a count for each word.
4. Loop through each document:
- For each document, read the text.
- For each word in the text, check if it matches the target word or its synonyms.
- Increment the respective counts.
5. Output the counts.

Next, let's express this algorithm using a flowchart.

Flowchart:
1. Start
2. Load text documents
3. Define target word and synonyms
4. Initialize counts to zero
5. For each document in documents:
- Read the document text
- For each word in text:
- If word matches target or synonym:
- Increment count for that word
6. Output counts
7. End

Now, let's express the algorithm using pseudocode:

Pseudocode:
```
START
LOAD documents
DEFINE target_word
DEFINE synonyms_list
INITIALIZE counts_dict to {target_word: 0, synonyms: {synonym1: 0, synonym2: 0, ...}}

FOR each document in documents DO


READ document_text
SPLIT document_text into words

FOR each word in words DO


IF word equals target_word THEN
INCREMENT counts_dict[target_word] by 1
ELSE IF word in synonyms_list THEN
INCREMENT counts_dict[synonym] by 1
END IF
END FOR
END FOR

OUTPUT counts_dict
END
```

Finally, let's implement the solution in Python:

```python
import os
from collections import defaultdict

def count_word_and_synonyms(corpus_path, target_word, synonyms):


counts = defaultdict(int) # Initialize counts for target word and synonyms

# Loop through each document in the corpus


for filename in [Link](corpus_path):
if [Link]('.txt'): # Assuming text files
with open([Link](corpus_path, filename), 'r', encoding='utf-8') as file:
text = [Link]()
words = [Link]() # Split text into words

# Count occurrences
for word in words:
if [Link]() == target_word.lower():
counts[target_word] += 1
elif [Link]() in [[Link]() for synonym in synonyms]:
counts[[Link]()] += 1 # Count the synonym

return counts

# Example usage
corpus_path = 'path/to/text/documents' # Update with the actual path
target_word = 'happy'
synonyms = ['joyful', 'content', 'cheerful']
result = count_word_and_synonyms(corpus_path, target_word, synonyms)

print(result)
```

This Python code defines a function that counts the occurrences of a target word and its
synonyms in text documents located in a specified directory. The results are stored in a dictionary
and printed at the end.

You might also like