1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Juliette [100K]
3 years ago
12

Write a function wordcount() that takes the name of a text file as input and prints the number of occurrences of every word in t

he file. You function should be case-insensitive so 'Hello' and 'hello' are treated as the same word. You should ignore words of length 2 or less. Also, be sure to remove punctuation and digits.
>>>wordcount('frankenstein.txt')
artifice 1
resting 2
compact 1
service 3

Computers and Technology
1 answer:
o-na [289]3 years ago
4 0

Answer:

I am writing a Python program. Let me know if you want the program in some other programming language.        

import string  #to use string related functions

def wordcount(filename):  # function that takes a text file name as parameter and returns the number of occurrences of every word in file

   file = open(filename, "r")  # open the file in read mode

   wc = dict()  # creates a dictionary

   for sentence in file:  # loop through each line of the file

       sentence = sentence.strip()  #returns the text, removing empty spaces

       sentence=sentence.lower() #converts each line to lowercase to avoid case sensitivity

       sentence = sentence.translate(sentence.maketrans("", "", string.punctuation))  #removes punctuation from every line of the text file

       words = sentence.split(" ")  # split the lines into a list of words

       for word in words:  #loops through each word of the file

           if len(word)>2:  #checks if the length of the word is greater than 2

               if word in wc:  # if the word is already in dictionary

                   wc[word] = wc[word] + 1  #if the word is already present in dict wc then add 1 to the count of that word

               else:  #if the word is not already present

                   wc[word] = 1  # word is added to the wc dict and assign 1 to the count of that word                

   for w in list(wc.keys()):  #prints the list of words and their number of occurrences

       print(w, wc[w])  #prints word: occurrences in key:value format of dict        

wordcount("file.txt") #calls wordcount method and passes name of the file to that method

Explanation:

The program has a function wordcount that takes the name of a text file (filename) as parameter.

open() method is used to open the file in read mode. "r" represents the mode and it means read mode. Then a dictionary is created and named as wc. The first for loop, iterates through each line (sentence) of the text file. strip() method is used to remove extra empty spaces or new line character from each sentence of the file, then each sentence is converted to lower case using lower() method to avoid case sensitivity. Now the words "hello" and "Hello" are treated as the same word.

sentence = sentence.translate(sentence.maketrans("", "", string.punctuation))  statement uses two methods i.e. maketrans() and translate(). maketrans() specifies the punctuation characters that are to be deleted from the sentences and returns a translation table. translate() method uses the table that maketrans() returns in order to replace a character to its mapped character and returns the lines of text file after performing these translations.

Next the split() method is used to break these sentences into a list of words. Second for loop iterates through each word of the text file. As its given to ignore words of length 2 or less, so an IF statement is used to check if the length of word is greater than 2. If this statement evaluates to true then next statement: if word in wc:   is executed which checks if the word is already present in dictionary. If this statement evaluates to true then 1 is added to the count of that word. If the word is not already present  then the word is added to the wc dictionary and 1 s assigned to the count of that word.

Next the words along with their occurrences is printed. The program and its output are attached as screenshot. Since the frankenstein.txt' is not provided so I am using my own text file.

You might be interested in
What attack cracks a password or encryption key by trying all possible valid combinations from a defined set of possibilities (a
ss7ja [257]

Answer:

Brute Force attack.

Explanation:

A network is a platform where end user devices like computers are connected to communicate and share resources. There are public networks and private networks.

A public network has its end devices and servers configured with a public IP address, which is routable on the internet, while private networks uses private IP addresses which can be used on the internet.

Private networks can be made accessable to public users by configuring an authentication and authorization policy, which could be one or a multi factor authentication. These requires a password and other factors to access the services of a private network.

An attacker can easily access a one factor or a password accessible user account, if the password is weak by using the process called a brute Force attack.

The brute Force attack exploits the vulnerability of weak passwords by entering possible valid combination from a defined set of possibilities.

6 0
3 years ago
Describe how you would define the relation Brother-in-Law whose tuples have the form (x, y) with x being the brother-in-law of y
damaskus [11]

Answer:

The expression is :

π[cd) + π(g,h) ],[π(e,f)+π(a,b)])

We will use foreign key and primary key

8 0
3 years ago
What is a popular use for SLR film cameras? (choose one)
Artemon [7]
Answer is c i believe
3 0
3 years ago
Which type of password provides the highest level of permissions in bios?
OLEGan [10]
<span>Which type of password provides the highest level of permissions in bios? = Supervisor provides the highest level of permissions in the BIOS</span>
6 0
3 years ago
What does amelia heart and the wright brothers have in common
expeople1 [14]

Answer:

they are stepbro and step sis and they fucx

Explanation:

7 0
2 years ago
Other questions:
  • Brenda wants to finish her presentation with a summary slide . She wants three key messages to appear on each of the photo clips
    6·2 answers
  • To make sure that you do not get too tired when typing for long periods, how often should you get up and stretch? Every 15 minut
    9·1 answer
  • What information medium is used to access information from the Internet in the form of HTML pages?
    12·1 answer
  • Plot element is typically the turning point in the most intense moment of a story
    8·1 answer
  • Given that Apache and Internet Information Services (IIS) are the two most popular web application servers for Linux and Microso
    10·1 answer
  • In cell B13, create a formula without a function using absolute references that subtracts the values of cells B5 and
    13·1 answer
  • 1. What are you going to do if someone ask for your personal information online?​
    12·2 answers
  • How are mathematics and computer science similar? Discuss any connections between numbers, logic, and other elements.
    14·1 answer
  • Explain the difference between overexposed vs. underexposed images?
    15·2 answers
  • A company creates a ______by using a wireless access point (WAP) and an Internet connection. Select the two correct answers, the
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!