文本预处理

我也疑惑了半天,大意是

def count_corpus(tokens):  #@save
    """统计词元的频率"""
    # 这里的tokens是1D列表或2D列表

当tokens是一维空列表[]时,tokens[0]会报index溢出错误,有了len(tokens) == 0就会跳过if后半句避免bug。

最后的运行结果28表示:26个字母+空格+表示未知词元的《unk》。

兴许是更 pythonic 的实现。欢迎参观

为什么self.unk不用类属性定义还要单独用一个属性函数定义?

我也觉得这里不太舒服哈哈哈哈,我后来是这样写的,可能更符合直觉。

请问需要将标注了#@save的函数自己添加到d2l中吗?
我发现read_time_machine()、tokenize()等标注了#@save的函数都没有出现在d2l中,后续类似d2l.read_time_machine()会报错


需要自己将这些函数添加到d2l包中吗?
还是我安装的d2l包有问题?
谢谢!