从文本文件构建马尔可夫模型?

时间:2015-04-16 22:28:17

标签: python

我有一个用于构建程序的任务,该程序基于输入文件读取文本然后生成新文本。字典应该根据输入文件中的文本将n个字母串映射到可以跟随字符串的字母列表。到目前为止,我有

def create_dic():
    n = order_entry.get()
    inputfile = file_entry.get() #name of input file
    lines = open(inputfile,'r').read() #reads input file into string
    model = {} #empty dictionary to build Markov model

对于输入中的每个n字符序列,我必须在字典中查找它以获取可能的后续字符列表并获取下一个字符。"当字典为空时,我对在字典中查找字符串的指令感到困惑?不知道字典里什么都没有?

2 个答案:

答案 0 :(得分:0)

由于这是一项任务,我会给你一些重要问题而不是答案。正如@Quirliom所说,“填充字典。”

当您想使用Markov模型时,您希望在字典中搜索哪个键?

当您搜索该密钥时,您希望获得什么?

句子“字典应该将n个字母串映射到可以跟随字符串的字母列表,基于输入文件中的文本,”这些问题的答案。这意味着您必须对输入文件进行一些工作,以弄清楚如何提取字典键以及它们应映射到的内容。

答案 1 :(得分:0)

这绝对不是最好的方法,但你从这开始。

  • 以信件为基础:哪个字母位于最前面(对于整个数据)。

单词的第一个字符(字母)是可数实体。检查哪个字符(字母)记录最多是合理的。用这个开始你生成的文本。然后查看哪个字母最成功,等等。也取平均字长并在此长度周围分配生成的单词。

获得更好的结果:

  • 以n克为基础:哪个n-gram最有可能先于其他n-gram(你可以将它扩展为句子)