使用Spacy创建FAQ机器人的过程是什么?

我对机器学习和自然语言处理是初学者,我需要基于FAQ数据集创建一个机器人。每个FAQ数据集的Excel文件包含两个列:“问题”和“答案”。

例如,Excel文件中的一条记录(一个问题及其答案)。

问题什么是RASA-NLU?

答案Rasa NLU经过训练可以识别意图和实体。训练得越好,识别得越好...

我们有3000多个Excel文件,每个文件包含大约10000到20000条这样的记录。

为了实现这个机器人,我本来会严格按照这个FAQ机器人方法来操作,该方法使用RASA-NLU,但我的组织不允许使用RASAChatterbot以及微软的QnA maker

Spacy对我来说完美地进行了NER提取,所以我正在寻找使用Spacy创建机器人的方法。但在提取实体之后,我不知道该如何继续进行。(恕我直言,我需要从用户查询中预测数据集中的确切问题(以及来自知识库的答案))

我不知道应该使用哪种NLP算法/ML流程,或者是否有使用提取的NER创建FAQ机器人的更简单的方法。


回答:

实现你的FAQ机器人的一种方法是将问题转化为分类问题。你有问题,而答案可以作为“标签”。我猜测你总是有多个训练问题映射到同一个答案。你可以对每个答案进行编码,以便获得较小的标签(例如,你可以将答案的文本映射到一个id)。然后,你可以使用你的训练数据(问题)和标签(编码后的答案)来训练一个分类器。训练后,你的分类器可以预测未见过的问题的标签。当然,这是一种监督方法,所以你需要从你的训练句子(问题)中提取特征。在这种情况下,你可以使用词袋表示作为特征,甚至可以包括命名实体。这里有一个在spacy中进行文本分类的示例:https://www.dataquest.io/blog/tutorial-text-classification-in-python-using-spacy/

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注