Python 使用TensorFlow标记字符串中字符的体系结构

Python 使用TensorFlow标记字符串中字符的体系结构,python,tensorflow,keras,Python,Tensorflow,Keras,我想创建一个用于标记句子中字符的神经网络。这里有一个例子 我的数据集示例:s=“昨天我去了游泳池” 我的预期产出: 昨天->class日期(d) 我去了->class动作(a) 游泳池->class位置(l) 需要注意的是,我在角色级别上工作,我希望每个角色都能被分类为如下类型: input = "Yesterday I went to the swimming pool" output = "ddddddddd aaaaaaaaa lllllllllllll

我想创建一个用于标记句子中字符的神经网络。这里有一个例子

我的数据集示例:
s=“昨天我去了游泳池”

我的预期产出:

  • 昨天
    ->class
    日期(d)
  • 我去了
    ->class
    动作(a)
  • 游泳池
    ->class
    位置(l)
需要注意的是,我在角色级别上工作,我希望每个角色都能被分类为如下类型:

input  = "Yesterday I went to the swimming pool"
output = "ddddddddd aaaaaaaaa lllllllllllllllll"
我已经知道或,但出于某些原因,我不会在这里公开,这不适合我的应用程序

为了简单起见,我们假设输入字符串的长度都相同,比如说30个字符

我已经编写了一个简单的概念证明,用于将一个字符分为4类。这是我的模型:

model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(32, activation='relu'),
  tf.keras.layers.Dense(32, activation='relu'),
  tf.keras.layers.Dense(32, activation='relu'),
  tf.keras.layers.Dense(4, activation='softmax', name="char2"),
])
它工作得很好,我很快就达到了100%的准确率。但是它只对一个字符进行分类,如果我想对所有字符串进行分类,我必须为字符0创建一个模型,为字符1创建第二个模型,为字符2创建第三个模型,依此类推。我认为有更好的解决方案,尤其是因为我的网络中必须有相同的层

所以我的问题是关于网络架构。我的应用程序的最佳架构是什么?我已经做了很多关于多输出网络的研究,但是没有找到满意的解决方案。这似乎很有趣,但没有任何答案


欢迎任何帮助。

也许某种双向LSTM可以工作。但我不确定为什么要对每个字符进行具体分类,如果可以对每个单词/标记进行分类(这是词性标记等问题中更常见的方法),就可以立即知道每个字符属于哪个类别。