使用 Spacy 创建 FAQ 机器人的过程是怎样的?

What is the process to create an FAQ bot using Spacy?

我是机器学习和 NLP 的初学者,我必须基于 FAQ 数据集创建一个机器人,每个 FAQ 数据集 excel 文件包含 2 列 "Questions" 及其 "Answers"。

例如。来自 excel 文件的记录(一个问题及其答案)。

问题 - What is RASA-NLU?

回答 - Rasa NLU is trained to identify intent and entities. Better the training, better the identification...

我们有 3K+ excel 个文件,每个文件大约有 10K 到 20K 个这样的记录 excel。

要实现该机器人,我会完全遵循使用 RASA-NLUthis FAQ bot approach,但是 RASAChatterbot 以及 Microsoft 的 QnA maker 都不是我的组织允许。

Spacy 为我完美地完成了 NER extraction,所以我正在寻找使用 Spacy 创建的机器人。但我不知道在提取实体后如何进一步进行。 (恕我直言,我将不得不从用户查询到机器人的数据集中预测确切的问题(及其来自 knowlwdge base 的答案)

我不知道要使用什么 NLP 算法/ML 过程,或者是否有任何最简单的方法来使用提取的 NER 创建该 FAQ 机器人。

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