python-3.x - 使用 Spacy 创建常见问题解答机器人的过程是什么?

标签 python-3.x machine-learning nlp chatbot named-entity-recognition

我是机器学习和 NLP 的初学者,我必须基于 FAQ 数据集创建一个机器人,每个 FAQ 数据集 Excel 文件包含 2 列“问题”及其“答案”。

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

问题 - 什么是 RASA-NLU?

答案 - Rasa NLU 经过训练可以识别意图和实体。更好的培训,更好的识别......

我们有 3K+ 个 Excel 文件,每个 Excel 大约有 10K 到 20K 条此类记录。

要实现该机器人,我会严格遵循 this FAQ bot approach它使用 RASA-NLU,但我的组织不允许使用 RASAChatterbot 以及 Microsoft 的 QnAmaker

SpacyNER 提取非常适合我,所以我正在寻找使用 Spacy 创建机器人。但我不知道提取实体后如何进一步进行。 (恕我直言,我必须从用户查询到机器人的数据集中预测确切的问题(及其来自知识库的答案))

我不知道要使用什么 NLP 算法/ML 流程,或者是否有任何最简单的方法可以使用提取的 NER 创建常见问题解答机器人。

最佳答案

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

关于python-3.x - 使用 Spacy 创建常见问题解答机器人的过程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59285376/

相关文章:

python - 为什么此代码在重复调用函数后会引发错误?

python-3.x - 如何在 PyOpenGL 中获取当前相机位置?

python - PyQt5 信号和线程

python - Tfidf内存错误: How to avoid this issue?

python - NLTK 语言建模混淆

machine-learning - 具有多个输出神经元的神经网络中的反向传播

python-3.x - Spacy - 标记带引号的字符串

python - 使用 Python 从个人地名词典中识别命名实体

python-3.x - Elasticsearch DSL或查询格式

machine-learning - WordNet:同一对象不同部分之间的语义关系