文本文件概率计算(马尔可夫链)- Python
Text file probability calculation (Markov Chain) - Python
我的处境很糟糕。我需要编写一些程序,这超出了我的能力范围。
我得到了一个 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}
这是正确的吗?
我需要你们的帮助。
两件事:
- 这与马尔可夫链无关。完全没有。
- Python 实际上有一些非常好的内置函数可以使这或多或少变得微不足道。
我不会用勺子喂养答案,但我不想让你在这个问题上高高在上。要点是,根据您的具体情况,这可以使用 python
.
中的 Counter
对象在几行中完成
from collections import Counter
text = open("test_file.txt").read().lower()
letter_freqs = Counter(text)
word_freqs = Counter(text.split())
根据您正在寻找的最终结果,这可能足够也可能不够,但这应该让您走得足够远,其余的应该非常微不足道。
我的处境很糟糕。我需要编写一些程序,这超出了我的能力范围。
我得到了一个 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}
这是正确的吗?
我需要你们的帮助。
两件事:
- 这与马尔可夫链无关。完全没有。
- Python 实际上有一些非常好的内置函数可以使这或多或少变得微不足道。
我不会用勺子喂养答案,但我不想让你在这个问题上高高在上。要点是,根据您的具体情况,这可以使用 python
.
Counter
对象在几行中完成
from collections import Counter
text = open("test_file.txt").read().lower()
letter_freqs = Counter(text)
word_freqs = Counter(text.split())
根据您正在寻找的最终结果,这可能足够也可能不够,但这应该让您走得足够远,其余的应该非常微不足道。