python - 多类文本分类的合适 LSTM 模型是什么?张量流 2.x
问题描述
我正在通过Myers-Briggs测试预测人格类型。我想为这个多类文本分类问题获得一个合适的 LSTM 模型。
- 标签:有16种性格
- 数据集有:70,800 个单词。其中分为 80% 用于训练数据和 20% 用于验证数据。
尺寸:
- 训练数据(X_train):56,640 字。
- 验证数据(Y_val):14,160 字。
train_data_padded.size
validation_padded.size
填充:
训练和验证数据以 240 的最大长度填充。
例如:
training_padded = tf.keras.preprocessing.sequence.pad_sequences(training_sequences,
maxlen = 240,
dtype = 'int32',
padding = 'post',
truncating = 'post',
value = 0.0)
形状:
training padded: {train_data_padded.shape}
validation padded: {validation_padded.shape}
training padded: (236, 240)
validation padded: (59, 240)
预期输出: 可以有两种类型的输出:
- 1 输出:哪里是更准确的人格类型。
INTJ: 0,84%
- 16 个输出:给出 16 种类型的个性,显示每个准确度百分比。
INTJ: 0,5 | INTP: 0,45 | ENTP: 0,8 | ... | ISFP: 0,20
我尝试了什么?:我已经尝试了 TF 网站上的一些 LSTM 模型,但是,我想知道你对这个主题的回答。
model = tf.keras.Sequential([
tf.keras.layers.Embedding(56640, 240),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(240)),
tf.keras.layers.Dense(240, activation='relu'),
# When we have multiple outputs, softmax convert outputs layers into a probability distribution.
tf.keras.layers.Dense(16, activation='softmax')
])
#loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
在尝试关闭问题之前,请提出任何改进建议,我们将予以考虑。
解决方案
推荐阅读
- swagger - Swagger YAML 文件添加动态 URL
- python - 如何映射多列python
- r - 带有几个数字的 Rstudio 维恩图
- android - 如何在应用程序关闭时向 Android 发送推送通知
- javascript - 为什么我的 SQL 代码中出现语法错误?
- java - Intellij 抛出 java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey 但使用 maven 运行
- vaadin - 在 vaadin 网格中取消选择一行 vaadin 8
- bash - 如何在 vim ':!some_command' shell 命令中使 .bashrc 别名可用?
- firedac - FireDAC 查询 RecordCountMode
- python - 如何从此特定页面中提取文本?使用 bs4+python 无法做到这一点