我也疑惑了半天,大意是
def count_corpus(tokens): #@save
"""统计词元的频率"""
# 这里的tokens是1D列表或2D列表
当tokens是一维空列表[]
时,tokens[0]会报index溢出错误,有了len(tokens) == 0
就会跳过if后半句避免bug。
我也疑惑了半天,大意是
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()会报错
这一节是不是把 corpus(语料)和 token_id 搞混了?
ChatGPT 的说法是 corpus 是原始文本,经过分词(tokenization)后成为词元(token),随后在词元的基础上建立词表(vocab),使 token 与 token_id 形成一一对应的关系(也就是把 token 变成一个数字)