开箱即用,易于使用序列库与注意的文本序列。
txt2txt的Python项目详细描述
txt2xt-一个非常易于使用的seq2seq实现,注意文本到文本的用例
示例
安装
pip install txt2txt
培训模型
from txt2txt import build_params, build_model, convert_training_data
input_data = ['123', '213', '312', '321', '132', '231']
output_data = ['123', '123', '123', '123', '123', '123']
build_params(input_data = input_data, output_data = output_data, params_path = 'test/params', max_lenghts=(10, 10))
model, params = build_model(params_path='test/params')
input_data, output_data = convert_training_data(input_data, output_data, params)
checkpoint = ModelCheckpoint('test/checkpoint', monitor='val_acc', verbose=1, save_best_only=True, mode='max')
callbacks_list = [checkpoint]
model.fit(input_data, output_data, validation_data=(input_data, output_data), batch_size=2, epochs=20, callbacks=callbacks_list)
加载训练模型并运行推理
from txt2txt import build_model, infer
model, params = build_model(params_path='test/params')
model.load_weights('path_to_checkpoint_file')
infer(input_text, model, params)
注意:请检查https://github.com/bedapudi6788/deepcorrect以获取英语标点和语法更正的预先培训模型。
要求
这个模块需要keras和tensorflow。(用tf>;=1.8.0,keras>;=2.2.0进行测试)。
tensorflow不包含在setup.py中,需要单独安装。
这个模块有什么用处
在nlp中使用seq2seq任务时,我意识到没有任何易于使用、易于理解和性能良好的库可用于此。尽管像fairseq或transformer这样的库是可用的,但它们通常对于新手来说太复杂,无法理解,或者对于简单的项目来说,很可能过于复杂(而且很难训练)。
本模块提供预先构建的seq2seq模型,该模型在大多数“简单”nlp tak上都表现出色。(通过标点、音译和拼写更正进行测试)
待办事项
使编码器和解码器层的数量可配置
提供在波束搜索中添加语言模型概率的选项
许可证
虽然txt2xt是根据gpl授权的,但是如果你想在没有公开源代码的情况下进行商业使用,请给我发电子邮件或在本回购协议中提出问题,以便我可以为你提供明确的书面使用许可。这样做的唯一原因是,如果有公司在利用我的工作,那就好了。