我想为iOS创建一个使用Cornell电影数据库和一些我自己创建的自定义训练数据来训练机器学习模型的智能聊机器人类型的应用。这个模型可以与用户对话,最好能跟踪对话并执行一些简单的任务。
我将更深入地解释。
最近我发现了一种将TensorFlow模型转换为CoreML模型的方法,所以我尝试使用TensorFlow,并意识到转换方法有限,使用TensorFlow需要我学习更多的知识,而我没有时间去做这些。我是一名iOS开发者,因此熟悉Swift和Objective-C,所以我想知道是否有使用这些语言的方法来实现同样的功能。
我希望能够使用我在训练TensorFlow时尝试过的Cornell电影数据库来训练模型,加上我对其的贡献。我的意思是我可能希望我的聊机器人执行一些特定的任务,或者以特定的方式回答某些异常问题。我认为我可以通过向Cornell数据库添加包含我特定需求的“对话”来实现这一点。如果有其他方法可以将我的数据注入其中,请告诉我。
我还希望聊机器人能够执行特定任务。因此,我认为我需要一个更复杂的模型,能够识别当聊机器人被告知执行某些操作时,例如在这里打开灯或向某人发送文本消息(这些都是非常小的事情,只需要一个触发器和一些参数)。
如果聊机器人能够记住对话的某些方面就更好了。例如,如果聊机器人问我的名字,我回答了,它应该记得我的名字,以便我稍后问它我的名字时,它能回答。这也适用于更复杂的情况,例如我问它明天多伦多的天气,它回答了,然后我问“下周二呢?”,它应该回答下周二多伦多的天气。
总的来说,我想使用CoreML(以及它看似非常好的自然语言处理能力)为iOS应用程序创建一个复杂的聊机器人模型。
我不知道这是否完全可能,但我真的很想尝试为iOS创建一个尽可能先进和对话化的聊机器人。
回答:
如果你不介意通过API调用(这将使其在没有WiFi的情况下无法使用)并为此付费,Google的Dialogue Flow可能是一个很好的工具,因为它已经具有很好的NLP。你仍然需要自己存储大部分信息,并为其他部分编写自己的功能(例如实际向天气API发送请求),但它在理解某人讲话背后的意图方面非常好。
如果你不想付费或者需要在没有WiFi的情况下使用,有一个名为Natural Language Processing A-Z的Udemy课程,课程时长超过40小时,对于学习使用TensorFlow进行NLP非常有用。需要更多的工作,但Google不会从中抽成,你可能能够在没有WiFi的情况下工作。