Machine learning 机器学习:哪种算法适合问答
Machine learning 机器学习:哪种算法适合问答,machine-learning,Machine Learning,我想建立一个与用户对话并从用户那里获得一些输入的ml程序。
ml程序分析输入数据(关键字),然后预测最佳解决方案。因此,您看到的是一个人工智能应用程序,它需要某种机器智能来处理自然语言。
让我们说这里选择的语言是英语。在建立这样一个系统之前,有很多事情需要考虑
依赖解析
词义消歧
动词语义消歧
共指分辨
语义角色标记
知识的宇宙
简言之,在生成响应之前,您需要构建上述所有基本模块。
你需要决定你在处理什么样的问题?这是一个开放域问题还是封闭域问题,即此应用程序的知识范围是什么。
例如:谷歌现在是
我想建立一个与用户对话并从用户那里获得一些输入的ml程序。
ml程序分析输入数据(关键字),然后预测最佳解决方案。因此,您看到的是一个人工智能应用程序,它需要某种机器智能来处理自然语言。
让我们说这里选择的语言是英语。在建立这样一个系统之前,有很多事情需要考虑
依赖解析
词义消歧
动词语义消歧
共指分辨
语义角色标记
知识的宇宙李>
简言之,在生成响应之前,您需要构建上述所有基本模块。
你需要决定你在处理什么样的问题?这是一个开放域问题还是封闭域问题,即此应用程序的知识范围是什么。
例如:谷歌现在是一个开放领域的问题,几乎可以接受任何可能的输入。
但有些应用程序与特定任务有关,如在应用程序中自动点菜等,可以提出的问题范围有限
一旦决定了这一点,您就需要解析您的输入句子,而依赖解析就是一种方法。您可以使用StanfordCore NLP套件来实现上面提到的大多数NLP任务
一旦输入的句子被解析,你有了主语、宾语等,是时候消除句子中单词的歧义了,因为一个特定的单词可能有不同的含义
然后消除动词的歧义,意思是识别动词的类型(比如return可能意味着回到某个地方或归还某物)
然后,您需要解析共指消解,即映射给定上下文中的名词、代词和其他实体。例如:
我叫约翰。我在ABC公司工作
这里我在第二句中提到约翰。
这有助于我们回答像约翰在哪里工作这样的问题。由于John只在第一句中使用,而他的工作在第二句中提到,所以共指消解帮助我们将它们映射到一起
下一个任务是语义角色标记,这基本上意味着标记句子中与每个动词相关的所有参数。
例如:约翰杀了玛丽。
这里的动词是kill,John和Mary是kill的参数。约翰扮演A0,玛丽扮演A1。其中,NLP社区创建的大型框架和参数注释框架中提到了每个动词的这些角色的定义。这里A0表示被杀的人,A1表示被杀的人。
现在,一旦您确定了A0和A1,只需查看kill帧的定义,并为killer返回A0,为受害者返回A1
手头的另一项重要任务是确定您的系统何时必须响应答案。你需要知道给定的句子是陈述句还是断言句还是疑问句。您可以通过查看输入的句子是否以问号结尾来检查这一点
现在回答你的问题:
假设您对应用程序的输入是:
输入1:约翰杀了玛丽。
很明显,这是一个断言语句,所以只需存储它并按照上面提到的方式处理它。
现在,下一个输入是:
输入2:谁杀了玛丽
这是一个疑问句,所以你需要给出一个回答或回应
现在找到input 1和input 2的语义角色标签,并返回input 1的单词,该单词与句子2中Who的参数匹配。
在本例中,谁将被标记为A0,John将被标记为A0,只需返回John即可
提到的大多数NLP模块可以使用斯坦福核心NLP直接实现,但是如果您想自己实现一些算法,您可以查阅EMNLP、NIPS、ICML、CONLL等的最新出版物,更好地理解它们并实现最适合您的算法
祝你好运 问题是什么?我无法预测完成这项任务的最佳方法(算法)。