前一篇:《人工智能模型训练技术,正则化!》
序言:人工智能模型的真正价值在于其实际应用,而不仅仅停留在理论阶段。本节将通过一个简单而常见的应用场景,展示如何将前面几节所设计和训练的模型应用于实际问题。我们将使用训练好的模型对句子进行分类,具体来说,识别社交平台上用户评论的类别。通过这样的技术,社交平台可以实时分析用户的情绪,迅速采取适当的响应措施,比如缓解冲突、提升用户体验,甚至优化平台的推荐算法。
接下来,我们将逐步引导您完成这一过程,从句子编码到模型预测结果的解读,展示如何将理论和实践结合起来,将人工智能的潜能充分释放。
使用模型对句子进行分类
现在你已经创建了模型,训练它,并通过优化解决了许多导致过拟合的问题,下一步就是运行模型并检查其结果。为此,你需要创建一个包含新句子的数组。例如:
sentences = [
"granny starting to fear spiders in the garden might be real",
"game of thrones season finale showing this sunday night",
"TensorFlow book will be a best seller"
]
然后使用与训练时创建词汇表时相同的 tokenizer 对这些句子进行编码。这一点很重要,因为只有使用相同的 tokenizer 才能确保使用的是模型训练时的词汇表和标记。
sequences = tokenizer.texts_to_sequences(sentences)
print(sequences)
打印输出的结果是上述句子的序列:
[[1, 816, 1, 691, 1, 1, 1, 1, 300, 1, 90],
[111, 1, 1044, 173, 1, 1, 1, 1463, 181],
[1, 234, 7, 1, 1, 46, 1]]
这里有很多 1 标记(表示" "的占位符),因为像"in"和"the"这样的停用词已经从词典中移除了,而像"granny"和"spiders"这样的单词并未出现在训练词典中。
在将这些序列传递给模型之前,需要确保它们的形状符合模型的预期------也就是目标长度。你可以像训练模型时那样使用 pad_sequences 来实现:
padded = pad_sequences(sequences, maxlen=max_length,
padding=padding_type, truncating=trunc_type)
print(padded)
这会将句子输出为长度为 100 的序列,所以第一个序列的输出结果会是这样的:
[ 1 816 1 691 1 1 1 1 300 1 90 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 ]
这个句子确实很短!
现在句子已经被标记化并填充为符合模型输入维度要求的格式了,是时候将它们传递给模型并获取预测结果了。这非常简单,只需要这样操作:
print(model.predict(padded))
结果会以列表的形式返回并打印出来,高分表示可能性较大的讽刺性。以下是我们示例句子的结果:
[[0.7194135 ]
[0.02041999]
[0.13156283]]
对于第一个句子 "granny starting to fear spiders in the garden might be real",尽管它包含了许多停用词并且有大量的零填充,但它得到了一个很高的分数(0.7194135),这表明它具有很高的讽刺性。而后两个句子的分数低得多,表明它们的讽刺可能性较低。
总结:是的,人类为什么需要人工智能模型?因为在许多实际应用场景中,传统的计算程序或者编程代码无法有效解决问题,而这些场景往往只能由人类很好地处理。为了提高效率、降低运营成本,各大公司和企业才会投入巨额资金去研发和设计人工智能模型。
前一篇:《人工智能模型训练技术,正则化!》
**序言:**人工智能模型的真正价值在于其实际应用,而不仅仅停留在理论阶段。本节将通过一个简单而常见的应用场景,展示如何将前面几节所设计和训练的模型应用于实际问题。我们将使用训练好的模型对句子进行分类,具体来说,识别社交平台上用户评论的类别。通过这样的技术,社交平台可以实时分析用户的情绪,迅速采取适当的响应措施,比如缓解冲突、提升用户体验,甚至优化平台的推荐算法。
接下来,我们将逐步引导您完成这一过程,从句子编码到模型预测结果的解读,展示如何将理论和实践结合起来,将人工智能的潜能充分释放。
使用模型对句子进行分类
现在你已经创建了模型,训练它,并通过优化解决了许多导致过拟合的问题,下一步就是运行模型并检查其结果。为此,你需要创建一个包含新句子的数组。例如:
sentences = [
"granny starting to fear spiders in the garden might be real",
"game of thrones season finale showing this sunday night",
"TensorFlow book will be a best seller"
]
然后使用与训练时创建词汇表时相同的 tokenizer 对这些句子进行编码。这一点很重要,因为只有使用相同的 tokenizer 才能确保使用的是模型训练时的词汇表和标记。
sequences = tokenizer.texts_to_sequences(sentences)
print(sequences)
打印输出的结果是上述句子的序列:
[[1, 816, 1, 691, 1, 1, 1, 1, 300, 1, 90],
[111, 1, 1044, 173, 1, 1, 1, 1463, 181],
[1, 234, 7, 1, 1, 46, 1]]
这里有很多 1 标记(表示" "的占位符),因为像"in"和"the"这样的停用词已经从词典中移除了,而像"granny"和"spiders"这样的单词并未出现在训练词典中。
在将这些序列传递给模型之前,需要确保它们的形状符合模型的预期------也就是目标长度。你可以像训练模型时那样使用 pad_sequences 来实现:
padded = pad_sequences(sequences, maxlen=max_length,
padding=padding_type, truncating=trunc_type)
print(padded)
这会将句子输出为长度为 100 的序列,所以第一个序列的输出结果会是这样的:
[ 1 816 1 691 1 1 1 1 300 1 90 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 ]
这个句子确实很短!
现在句子已经被标记化并填充为符合模型输入维度要求的格式了,是时候将它们传递给模型并获取预测结果了。这非常简单,只需要这样操作:
print(model.predict(padded))
结果会以列表的形式返回并打印出来,高分表示可能性较大的讽刺性。以下是我们示例句子的结果:
[[0.7194135 ]
[0.02041999]
[0.13156283]]
对于第一个句子 "granny starting to fear spiders in the garden might be real",尽管它包含了许多停用词并且有大量的零填充,但它得到了一个很高的分数(0.7194135),这表明它具有很高的讽刺性。而后两个句子的分数低得多,表明它们的讽刺可能性较低。
**总结:**是的,人类为什么需要人工智能模型?因为在许多实际应用场景中,传统的计算程序或者编程代码无法有效解决问题,而这些场景往往只能由人类很好地处理。为了提高效率、降低运营成本,各大公司和企业才会投入巨额资金去研发和设计人工智能模型。