Python 我如何使用;文本“U目录”中的“U数据集”;要从tf.dataset对象进行二进制文本分类?
对不起,我对文本分类和Tensorflow还比较陌生,所以这看起来可能是一个非常愚蠢的问题 我有两个不同歌手的歌词。我试图实现的是建立一个二元文本分类模型来预测一首歌是否更适合歌手a或歌手B的风格。 我在子目录中有两个类的训练数据(歌词文本文件)。目录结构类似于Python 我如何使用;文本“U目录”中的“U数据集”;要从tf.dataset对象进行二进制文本分类?,python,tensorflow,keras,nlp,Python,Tensorflow,Keras,Nlp,对不起,我对文本分类和Tensorflow还比较陌生,所以这看起来可能是一个非常愚蠢的问题 我有两个不同歌手的歌词。我试图实现的是建立一个二元文本分类模型来预测一首歌是否更适合歌手a或歌手B的风格。 我在子目录中有两个类的训练数据(歌词文本文件)。目录结构类似于 Classification/ ...Singer_A/ ......A_song_1.txt ......A_song_2.txt ...Singer_B/ ......B_song_1.txt ......B_song_2.txt
Classification/
...Singer_A/
......A_song_1.txt
......A_song_2.txt
...Singer_B/
......B_song_1.txt
......B_song_2.txt
根据我在Tensorflow文档中读到的内容,我可以通过使用
来自目录的文本数据集方法。比如说
dataset = text_dataset_from_directory(
'Classification', labels='inferred', label_mode='int',
batch_size=32
)
然而,我不知道如何从那里继续下去。我假设创建的tf.data.Dataset
对象仍然需要在文本组件中进行标记化,标记化文本需要填充和嵌入,然后才能将其输入逻辑模型。但是我不知道如何在tf.data.Dataset
对象中进一步处理它
我看到了,但没有真正看到如何将其更改为二进制模型。对于给定的目录结构
Classification/
...Singer_A/
......A_song_1.txt
......A_song_2.txt
...Singer_B/
......B_song_1.txt
......B_song_2.txt
从目录中为二进制分类准备数据集
import tensorflow as tf
batch_size = 32
seed = 42
#training dataset
raw_train_ds = tf.keras.preprocessing.text_dataset_from_directory(
'classificatio/',
batch_size=batch_size,
validation_split=0.2,
subset='training',
seed=seed)
#validation dataset
raw_val_ds = tf.keras.preprocessing.text_dataset_from_directory(
'aclImdb/train',
batch_size=batch_size,
validation_split=0.2,
subset='validation',
seed=seed)
列车ad验证数据集准备就绪后,执行数据文本预处理,如标记化、小写、删除特殊字符和矢量化。使用下面的示例代码
def custom_standardization(input_data):
lowercase = tf.strings.lower(input_data)
stripped_html = tf.strings.regex_replace(lowercase, '<br />', ' ')
return tf.strings.regex_replace(stripped_html,
'[%s]' % re.escape(string.punctuation),
'')
def自定义_标准化(输入_数据):
小写=tf.strings.lower(输入_数据)
stripped_html=tf.strings.regex_replace(小写,
,“”)
返回tf.strings.regex\u replace(stripped\u html,
'[%s]'%re.escape(字符串标点符号),
'')
有关更多信息,请参阅基本手册