前言
文本的常见格式是txt
,我们需要把txt
文件中的每一句话中的每一个单词提取出来建立词库。通常,建立三个字典:word->index, index->word, word->frequency.
此外,由于将来处理文本时会遇到不在词库中的单词,所以添加<unk>
, <pad>
, <EOS>
, <BOS>
等特殊词。
以下内容以建立一个处理文本的类为例。
from collections import defaultdict
UNK_TOKEN = '<unk>'
PAD_TOKEN = '<pad>'
BOS_TOKEN = '<s>'
EOS_TOKEN = '</s>'
DEFAULT_UNK_ID = lambda: 0
class Vocabulary:
def __init__(self,file=None):
'''
file:预处理文件的路径
'''
#定义特殊字符
self.specials = [UNK_TOKEN, PAD_TOKEN, BOS_TOKEN, EOS_TOKEN]
#初始化字典 word->index
self.stoi = defaultdict(DEFAULT_UNK_ID)
self.itos