令牌化¶
令牌化是自然语言处理中一项基本但是非常重要的步骤,它更令人为所熟知的名字是分句和分词。 在EduNLP中我们将令牌化分为不同的粒度,为避免歧义,我们定义如下:
词/字级别:分词
句级别:分句
资源级别:令牌化
分词¶
对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如SIFSep、SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。
具有两种模式,一种是linear模式,用于对文本进行处理(使用jieba库进行分词);一种是ast模式,用于对公式进行解析。
分句¶
将较长的文档切分成若干句子的过程称为“分句”。每个句子为一个“令牌”(token)(待实现)。
令牌化¶
即综合解析,将带公式的句子切分为若干标记的过程。每个标记为一个“令牌”(token)。 我们提供了多种已经封装好的令牌化器供用户便捷调用,下面是一个示例:
>>> items = ["已知集合$A=\\left\\{x \\mid x^{2}-3 x-4<0\\right\\}, \\quad B=\\{-4,1,3,5\\}, \\quad$ 则 $A \\cap B=$"] >>> tokenizer = TextTokenizer() >>> tokens = tokenizer(items) >>> next(tokens) ['已知', '集合', 'A', '=', '\\left', '\\{', 'x', '\\mid', 'x', '^', '{', '2', '}', '-', '3', 'x', '-', '4', '<', '0', '\\right', '\\}', ',', '\\quad', 'B', '=', '\\{', '-', '4', ',', '1', ',', '3', ',', '5', '\\}', ',', '\\quad', 'A', '\\cap', 'B', '=']
通过查看”./EduNLP/Tokenizer/tokenizer.py”及”./EduNLP/Pretrain/gensim_vec.py”可以查看更多令牌化器,下面是一个完整的令牌化器列表
TextTokenizer
GensimSegTokenizer
GensimWordTokenizer