-
Notifications
You must be signed in to change notification settings - Fork 345
问答对数据
Hain Wang edited this page Aug 12, 2017
·
2 revisions
使用"问答数据",还需要做很多工作才能进入机器学习的模型,比如分词,去停用词,去标点符号,添加label标记。所以,在"问答数据"的基础上,还可以继续处理,但是在分词等任务中,可以借助不同分词工具,这点对于模型训练而言是有影响的。为了使数据能快速可用,insuranceqa-corpus-zh提供了一个使用HanLP分词和去标,去停,添加label的数据集,这个数据集完全是基于"问答数据"。
import insuranceqa_data as insuranceqa
train_data = insuranceqa.load_pairs_train()
test_data = insuranceqa.load_pairs_test()
valid_data = insuranceqa.load_pairs_valid()
# valid_data, test_data and train_data share the same properties
for x in test_data:
print('index %s value: %s ++$++ %s ++$++ %s' % \
(x['qid'], x['question'], x['utterance'], x['label']))
vocab_data = insuranceqa.load_pairs_vocab()
vocab_data['word2id']['UNKNOWN']
vocab_data['id2word'][0]
vocab_data['tf']
vocab_data['total']
vocab_data
包含word2id
(dict, 从word到id), id2word
(dict, 从id到word),tf
(dict, 词频统计)和total
(单词总数)。 其中,未登录词的标识为UNKNOWN
,未登录词的id为0。
train_data
, test_data
和 valid_data
的数据格式一样。qid
是问题Id,question
是问题,utterance
是回复,label
如果是 [1,0]
代表回复是正确答案,[0,1]
代表回复不是正确答案,所以 utterance
包含了正例和负例的数据。每个问题含有10个负例和1个正例。
train_data
含有问题12,889条,数据 141779
条,正例:负例 = 1:10
test_data
含有问题2,000条,数据 22000
条,正例:负例 = 1:10
valid_data
含有问题2,000条,数据 22000
条,正例:负例 = 1:10
句子长度:
max len of valid question : 31, average: 5(max)
max len of valid utterance: 878(max), average: 165(max)
max len of test question : 33, average: 5
max len of test utterance: 878, average: 161
max len of train question : 42(max), average: 5
max len of train utterance: 878, average: 162
vocab size: 24997