Python Forum
Python word counter and ranker
Thread Rating:
  • 4 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python word counter and ranker
#3
Thank you @snippsat for your reply. I made the three corrections you suggested. I removed the has_key method. I replaced the instance of iteritems with just items. I removed the ’r’ parameter when invoking the open function. Having made these changes, my script now looks like this:

#!/usr/bin/env python
# encoding: utf-8
"""
alice_file.py

Created by Jason Elbourne on 2011-12-29.
Copyright (c) 2011 Jason Elbourne. All rights reserved.
"""
import operator

## Get each word - Turn to Lower case (.lower())
## Count Duplicates of words
## Dictionary {word:count,word2:count2}
## Sort this based on most used word
## Print the Top 20 Words

def rank_words(f):
	"""
		Takes in a file, then ranks all the words within the file
		
		Args: a file
		
		Return: A sorted list of tuples
	"""
	word_dict = {} # Start with empty python Dictionary
	words = [] # Start with empty python List
	for line in f:
		list_of_words = line.split()
		for w in list_of_words:
			words.append(w.lower()) # Add Word to List

	for word in words:
		if word in word_dict:
			word_dict[word] += 1 # Incr. value in Dict.
		else:
			word_dict[word] = 1 # Add word and value to Dict.
        # This will sort the dictionary and return a list of Tuples
	return sorted(word_dict.items(), reverse=True, \
					key=operator.itemgetter(1))


def main():
	# Files
	f = open('Alice.txt')

	ranked_words_list = rank_words(f)

	f.close()

        # Print the results
	for w in list(ranked_words_list[:10]):
		print(w[0],"---", w[1])


if __name__ == '__main__':
	main()
I’m expecting the output you shared.

When I execute the Python script in my unix shell, there is no traceback which is good. But now there is no output at all. Why? The shell just prompts me to enter another command.

The same thing happens when I run your much more elegant alternative, @snippsat. When I run $ python pycounter.py, nothing happens. Why?

I figure the reason why will probably be pretty trivial and obvious once someone here clarifies. (I am ready to be hit over the head with a clue-bat. har har)
Reply


Messages In This Thread
Python word counter and ranker - by Drone4four - Jan-14-2019, 02:30 AM
RE: Python word counter and ranker - by snippsat - Jan-14-2019, 06:39 AM
RE: Python word counter and ranker - by Drone4four - Jan-15-2019, 02:00 AM
RE: Python word counter and ranker - by snippsat - Jan-15-2019, 02:40 AM
RE: Python word counter and ranker - by Drone4four - Jan-16-2019, 02:25 AM
RE: Python word counter and ranker - by snippsat - Jan-16-2019, 07:04 AM
RE: Python word counter and ranker - by Drone4four - Jan-18-2019, 11:58 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
Question Problem: Check if a list contains a word and then continue with the next word Mangono 2 2,595 Aug-12-2021, 04:25 PM
Last Post: palladium
  Python Speech recognition, word by word AceScottie 6 16,182 Apr-12-2020, 09:50 AM
Last Post: vinayakdhage
  print a word after specific word search evilcode1 8 5,014 Oct-22-2019, 08:08 AM
Last Post: newbieAuggie2019
  How to print counter without bracket in python and sort data. phob0s 1 2,843 Jul-25-2019, 05:33 PM
Last Post: ichabod801
  Extending my text file word count ranker and calculator Drone4four 8 5,479 Jan-25-2019, 08:25 AM
Last Post: steve_shambles
  difference between word: and word[:] in for loop zowhair 2 3,770 Mar-03-2018, 07:24 AM
Last Post: zowhair
  python word-docx jon0852 0 3,342 Sep-01-2017, 04:54 AM
Last Post: jon0852

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020