python 构建自己的NLP API

ymzxtsji  于 2023-05-05  发布在  Python
关注(0)|答案(4)|浏览(130)

我正在构建一个聊天机器人,我是NLP的新手。
(api.ai和AlchemyAPI对于我的用例来说太昂贵了。而wit.ai目前似乎存在缺陷,并且不断变化。)
对于NLPMaven来说,在本地复制他们的服务有多容易?
到目前为止,我的愿景(使用node,但对Python开放):

  • 基于StanfordNER的实体抽取
  • Intent通过NodeNatural的LogisticRegressionClassifier
  • 带有文本和验证/无效按钮的培训用户界面(是否有任何预建工具?)

实体和意图是聊天机器人所需要的全部吗?NodeNatural/StanfordNER与NLP即服务相比有多好?什么头痛我没看到?

dffbzjpn

dffbzjpn1#

你好像做了家庭作业。就像你说的,跟着事情走会对你有帮助,

  • 用于识别意图的任何分类算法,例如sklearn的LinearSVC或LogisticRegression Classifier
  • 任何好的NER工具,如StanfordNER或CRFsuite。CRFsuite具有易于使用的pthon Package ,称为pycrfsuite。
  • 一个情感分析工具,用于更人性化的对话。如果你使用Python会更好,因为Python有很多免费的库。

像www.example.com或www.example.com这样的服务的唯一好处wit.aiapi.ai是他们经过严格训练的准备使用意图和模型。如果你能够为你的机器人提供大量的训练,你也将能够实现类似的准确性。
最好是在一些现有的开源库上进行构建,而不是从头开始构建所有内容。请在github上check my opensource project为wit.ai/api.ai提供类似的界面。编码快乐!

mepcadol

mepcadol2#

看看Luis.ai(来自Microsoft)。它将帮助您构建一个识别意图的自然语言模型。您可以将意图Map到操作。它允许您包含预配置的NLP模型,以便您的机器人可以破译文本并返回实体(名称,时间,地理等),Luis支持多种语言。当然,您可以添加自己的实体。
然后你用话语训练它。当用户与你的机器人交谈时,这些话语会存储在网上和Luis.ai上,它会建议你添加一些内容,通过它的建议功能进一步完善你的模型(这允许在不编码的情况下进行增量改进)。现在是编码的时候了……
访问Luis.ai,当你构建你的模型(免费)时,你可以通过测试控制台测试它:https://dev.projectoxford.ai/docs/services然后你可以使用他们的机器人框架;然而,我在jQuery/Bootstrap中构建了自己的json(看看这个,看看我在这里构建了什么http://onlinebotbuilder.com),并通过发布到认知服务API(你会在Python中这样做)来处理来自服务器的json。目前,他们允许每月10 k的话语;这对于测试来说已经足够了。提示:创建模型时,从2个意图开始,并训练模型识别这些意图。保持简单,然后扩展范围。希望这能帮上忙。

xlpyo6sf

xlpyo6sf3#

需要考虑的两件事是:你打算如何处理世代的问题?实体提取和分类对于自然语言理解(NLU)方面非常有用,但生成本身可能很棘手。
另一件需要考虑的事情是,这些模型的管道的训练和开发通常是与部署分开的问题。我认为,您希望使用node这一事实表明您已经了解了部署软件。但是请记住,在管道中部署大型机器学习模型可能会很复杂,我怀疑这些API可能会为您提供整洁的打包管道。

cngwdvgl

cngwdvgl4#

在这里,我做的python项目Advanced chatbot using nlpEntity提取和意图识别并不是聊天机器人唯一需要的东西。根据聊天机器人的复杂性,您可能还需要实现自然语言生成(NLG)和对话管理。StanfordNER和NodeNatural都是实体提取和意图识别的好工具,但它们可能不如NLP即服务解决方案准确,特别是对于复杂或模糊的文本。但是,它们仍然可以很好地用于许多用例。训练实体提取器和意图分类器可能需要大量的标记数据。您需要找到一种方法来收集或生成这些数据,这可能很耗时。如果您不熟悉Web开发,那么设计一个带有文本和验证/无效按钮的培训UI也可能是一个挑战。有一些预建的工具,如Prodigy和Chatito,可以帮助这一点,但他们也可能需要一些学习。

相关问题