向量化

此部分提供了简便的接口,可以直接将传入的items经过转化得到向量。当前提供了是否使用预训练模型的选项,可根据需要进行选择,如不使用预训练模型则可直接调用D2V函数,使用预训练模型则调用get_pretrained_i2v函数。

总体流程

1.对传入的item进行解析,得到SIF格式;

2.对sif_item进行成分分解;

3.对经过成分分解的item进行令牌化;

4.使用已有或者使用提供的预训练模型,将令牌化后的item转换为向量。

不使用预训练模型:直接调用D2V

使用自己提供的任一预训练模型(给出模型存放路径即可)将给定的题目文本转成向量。

  • 优点:可以使用自己的模型,另可调整训练参数,灵活性强。

处理的具体流程

1.调用get_tokenizer函数,得到经过分词后的结果;

2.调用T2V模块,根据需要选择是否使用预训练的t2v模型

Examples:

>>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin"
>>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False)
>>> i2v(item)

使用预训练模型:直接调用get_pretrained_i2v

使用 EduNLP 项目组给定的预训练模型将给定的题目文本转成向量。

  • 优点:简单方便。

  • 缺点:只能使用项目中给定的模型,局限性较大。

  • 调用此函数即可获得相应的预训练模型,目前提供以下的预训练模型:d2v_all_256、d2v_sci_256、d2v_eng_256、d2v_lit_256

模型选择与使用

根据题目所属学科选择预训练模型:

预训练模型名称

模型训练数据的所属学科

d2v_all_256

全学科

d2v_sci_256

理科

d2v_lit_256

文科

d2v_eng_256

英语

处理的具体流程:

1.下载相应的预处理模型

2.将所得到的模型传入D2V,使用D2V进行处理

Examples:

>>> i2v = get_pretrained_i2v("d2v_sci_256")
>>> i2v(item)