阅读时间: 3 分钟
自然语言处理或NLP是现在最重要的机器学习技术之一,是人工智能/ML从业者应该掌握的。在目前的世界中,我们可以看到NLP的大量应用。如文本阅读、车牌阅读、电子邮件垃圾邮件过滤、预测性文本等。在这篇博客中,我们将看到一些需要了解的关键事项,以便使用tensorflow实现NLP。
介绍。
让我们首先了解一下什么是NLP。
[
自然语言处理是语言学、计算机科学和人工智能的一个子领域。它关注的是计算机和人类语言之间的相互作用。特别是如何为计算机编程以处理和分析大量的自然语言数据。它致力于建立能够理解和回应文本或语音数据的机器,并以人类的方式回应他们自己的文本或语音。
使用TensorFlow的NLP
TensorFlow的自然语言处理为你提供了宝贵的工具来处理当今数据流中大量的非结构化数据,并将这些工具应用于特定的NLP任务。在TensorFlow中,为了建立一个模型,我们需要知道几个重要的领域。这些领域是标记化和序列化。因此,让我们来了解它们。
符号化。
[
符号化有助于如何以计算机可以处理的方式来表示单词,然后建立一个可以理解它们的神经网络。符号化是将文本分割成较小单位的过程,如句子、单词或子词。我们将看到我们如何通过将文本标记为单词来处理文本语料库。
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.text import Tokenizer
#initialize list of sentences
sentences = [
'Life is so beautiful',
'Hope keeps us going',
'Let us celebrate life!'
]
#instantiate tokenizer and call the fit_to_texts method.
tokenizer = Tokenizer()
tokenizer.fit_on_texts(sentences)
print(word_index)
当你编写上述代码时,它将打印出这样的输出结果。
{‘life’: 1, ‘us’: 2, ‘is’: 3, ‘so’: 4, ‘beautiful’: 5, ‘hope’: 6, ‘keeps’: 7, ‘going’: 8, ‘let’: 9, ‘celebrate’: 10}
因此,正如我们所看到的,句子现在被分离成了带有索引的单个单词。
了解排序。
我们将在标记化文本的基础上,使用这些生成的标记将文本转换为一个序列。我们可以通过调用 texts_to_sequences 方法得到一个序列。
sequences = tokenizer.texts_to_sequences(sentences)
#output:[[2, 4, 5, 6], [7, 8, 3, 9], [10, 3, 11, 2]]
#import pad_sequences function to pad our sequences
from tensorflow.keras.preprocessing.sequence import pad_sequences
padded = pad_sequences(sequences)
print(padded)
输出结果将是。
[[ 2 4 5 6]
默认情况下,填充序列的长度=最长的句子的长度。然而,我们可以通过明确设置maxlen参数来限制最大长度。如:。
padded = pad_sequences(sequences,maxlen=5)
这两样东西连同tensorflow keras和密集层可以用来建立一个好的模型。
总结。
NLP一直是一个非常重要的机器学习实践。有了TensorFlow,它就有了更多的改进。我们可以获得对文本数据的洞察力,并亲身体验如何使用这些洞察力来训练NLP模型。因此,请尽力理解这个NLP实践并开发一些好的模型。