autoencoderで文章を学習したモデルをslackbotでテストしたいと考えています。
しかしながら、

File "/home/yudai/Desktop/keras_test.py", line 24
loaded_model = model_from json(loaded_model_json)
                             ^
SyntaxError: invalid syntax

と出力されます。しかしながら、このコード自体は、合っていそうなので、
他に原因があると考えられますがわかりません。
もしよろしければ、何卒ご教授お願いいたします。

from keras.models import Sequential
from keras.layers import Dense
from keras.models import model_from_json
import json
from collections import OrderedDict
import MeCab
import codecs
from slackbot.bot import default_reply
from slackbot.bot import Bot
import numpy
import os
import io, sys

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
tagger = MeCab.Tagger('mecabrc')
#モデルの構造を読む
id2word = json.load(open('keras_AE.json', 'r'))

id2word = {int(key): value for key, value in id2word.items()}
word2id
id2word.close()
#モデルをロードする
loaded_model = model_from json(id2word)
#重みを適用する
loded_model.load_weights('AE.h5')
model.train = False

@default_reply
def replay_message(message):
    parsed_sentence = []
    try:
        for chunk in tagger.parse(message.body["text"].encode("utf-8")).splitlines()[:-1]:
        (surface, feature) = chunk.decode("utf-8").split('\t')
        parsed_sentence.append(surface)
    parsed_sentence = ["<start>"] + parsed_sentence + ["<eos>"]

    ids = []
    for word in parsed_sentence:
        if word in word2id:
            id = word2id[word]
            ids.append(id)
        else:
            ids.append(0)
    ids_question = ids
    sentence = "".join(model.generate_sentence(ids_question, dictionary=id2word)).encode("utf-8")

    sentence = sentence.replace("◯", "")
    message.reply(sentence)
except Exception as e:
    print (e)
    message.reply("解析できなかったのでもう一度おねがいします。")

def main():
    bot = Bot()
    bot.run()

if __name__ == "__main__":
    main()