我刚刚发现自己是完美的解决方案。您需要做的就是编写一个嵌入层和一个双向 LSTM 矿井就是这样,
input_layer = tf.keras.Input(shape = (max_len,))
embeding_layer = tf.keras.layers.Embedding(top_wordings, embeding_length, input_length= max_len) (input_layer)
lstm_layer = tf.keras.layers.Bidirectional( tf.keras.layers.LSTM(15, return_sequences=True) ) (embeding_layer)
out_layer = tf.keras.layers.TimeDistributed( tf.keras.layers.Dense(2, activation= "softmax") ) (lstm_layer)
model = tf.keras.Model(input_layer, out_layer)
model.compile (optimizer= "adam", loss = "sparse_categorical_crossentropy", metrics=["accuracy"])
然后开始自己创建带有所有位置介词的位置名称的随机句子,就是这样的句子
“我在/上方/下方/某个位置之间”
然后用您所有的位置数据集名称更改某个位置。
对于目标部分,您只需要两个标签,无论它是不是一个位置(0,1),然后让网络训练。然后它甚至会根据介词从你的词汇表中找到位置。
希望它也对您有所帮助/记住将所有训练数据集都设为小写以避免敏感性
另外,请使用 open-street-map 提取街道名称