我的情况很糟糕。我需要编写一些东西,这比我的能力要高。
我收到了一个包含10k字的文本,该文件被调用(test_file.txt)。 我对你们的问题是: 如何让我的程序计算每个单词和每个单词,这样我就可以计算单词的概率,看看哪个单词和字母最多。
我知道这是字符串,我现在所做的就是:
import codecs
import sys
import random
fh = codecs.open("test_file.txt", encoding="utf-8")
fh.close()
omega = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
def Markov(text_file):
with open("test_file.txt") as t:
text = t.read()
text = [' '.join(data.split(' ')) if i !='']
text = [i.lower() for i in data if i.isalpha()]
chains = {i:[] for i in data}
这是正确的吗?
我需要你的帮助。
答案 0 :(得分:0)
两件事:
我不会用勺子喂一个答案,但我不想让你高高在上。要点是,根据您的具体情况,可以使用Counter
中的python
对象在几行中完成此操作。
from collections import Counter
text = open("test_file.txt").read().lower()
letter_freqs = Counter(text)
word_freqs = Counter(text.split())
根据您正在寻找的最终结果,这可能会或可能不够,但这应该让您足够远,其余部分应该非常简单。