本文转载自网址:http://csdaizuo.com/cs111final-project%EF%BC%88part1%EF%BC%89/
这次我们看看这份python的final作业我们是如何解决的。作业链接http://www.cs.bu.edu/courses/cs111/problem_sets/final_project.html
首先我们来看part1(Building an initial text model).我们需要实现五个方法:
1.__init__方法:
__init__(self, model_name)
:通过相关的名字作为参数来初始化这个对象;在构造函数内我们还需要初始化两个dictionary,一个用来存储单词出现次数,一个存储单词长度出现的次数。
2.__repr__:
__repr__(self)
:我们需要通过这种方式来实现对字典的大小以及名字的展示。我们下面举例来看我们是怎样展示信息的:
tips:我们需要包含换行符,并且返回一个字符串而不是去使用print()。在开发的初期,我们可以展示dictionary的详细信息,到了后期数据量变大时不必详细展示。
3.a helper function:clean_text(txt)
这个函数采取text文本字符串作为参数,然后返回一个list,list中的内容是被clean过的文本。这个函数将被用来处理文本,让每个单词不用担心逗号或者特殊字符的问题。
tips:也许你在处理文本的时候还可以把所有字符转为小写。为了防止内存不足,用迭代的方法遍历,不建议使用递归。
4.add_string(self, s)
style=”color: #000000;”我们添加text然后来实现一个对字典的更新,构造出新的键值对。
5add_file(self, filename)
我们打开文件,并且将文件中的文本加入到类中。其中我们可以调用4中的方法。
我们最后进行测试。首先创建model对象,然后加入字符串,调用4中的方法,然后打印model,我们可以看到打印出名字,单词个数,单词长度个数等信息。然后我们也可以打印出model类中两个dict的信息。part1就做完啦!