Here's a Python program that reads text data from a file and generates a printed list of up to the 10 most frequent words in the file, along with each word's count in the file, in descending order of frequency (separated by a tab). It also generates a log-log plot of word count versus word rank using Matplotlib.
```python
import matplotlib.pyplot as plt
from collections import Counter
# Read text data from file
with open('filename.txt', 'r') as f:
text = f.read()
# Split text into words and count their occurrences
word_counts = Counter(text.split())
# Print the top 10 most frequent words
for i, (word, count) in enumerate(word_counts.most_common(10)):
print(f"{i+1}. {word}\t{count}")
# Generate log-log plot of word count versus word rank
counts = list(word_counts.values())
counts.sort(reverse=True)
plt.loglog(range(1, len(counts)+1), counts)
plt.xlabel('Rank')
plt.ylabel('Count')
plt.show()
```
First, the program reads in the text data from a file named `filename.txt`. It then uses the `Counter` module from Python's standard library to count the occurrences of each word in the text. The program prints out the top 10 most frequent words, along with their counts, in descending order of frequency. Finally, the program generates a log-log plot of word count versus word rank using Matplotlib. The x-axis represents the rank of each word (i.e., the most frequent word has rank 1, the second most frequent word has rank 2, and so on), and the y-axis represents the count of each word. The resulting plot can help to visualize the distribution of word frequencies in the text.
Learn more about Python program here:
https://brainly.com/question/28691290
#SPJ11
The required program that generates the output described above is
```python
import matplotlib.pyplot as plt
from collections import Counter
# Read text data from file
with open('filename.txt', 'r') as f:
text = f.read()
# Split text into words and count their occurrences
word_counts = Counter(text.split())
# Print the top 10 most frequent words
for i, (word, count) in enumerate(word_counts.most_common(10)):
print(f"{i+1}. {word}\t{count}")
# Generate log-log plot of word count versus word rank
counts = list(word_counts.values())
counts.sort(reverse=True)
plt.loglog(range(1, len(counts)+1), counts)
plt.xlabel('Rank')
plt.ylabel('Count')
plt.show()
```
How does this work ?The code begins by reading text data from a file called 'filename.txt '. The 'Counter' module from Python's standard library is then used to count the occurrences of each word in the text.
In descending order of frequency, the software publishes the top ten most frequent terms, along with their counts. Finally, the program employs Matplotlib to build a log-log plot of word count vs word rank.
Learn more about Phyton:
https://brainly.com/question/26497128
#SPJ4