使用NLP APIS创建客户自助服务?

时间:2016-02-23 12:38:37

标签: architecture full-text-search nlp

我想使用NLP(自然语言处理)创建客户自助服务。 只需用户输入搜索句子,如"我如何支付每周费用?"并且自助服务将使用最相关的常见问题解答及其答案回答用户。

  1. 我将使用Alchemyapi(NLP API)来分析用户搜索句子。
  2. 使用关键字&搜索数据库(标记的答案将保存在那里) NLP API返回的实体。
  3. 向用户显示结果。
  4. 根据用户反馈(排名)更新答案标签。
  5. 这是我将构建一个简单的自助服务的逻辑,任何人都可以提出有效的方法,或者现有的API为我做这些。

    提前致谢

1 个答案:

答案 0 :(得分:2)

您想要构建的内容对我来说就像是一个信息检索(搜索引擎)问题。假设您在数据库中有一组问题及其答案。您想要做的是,当有人输入问题时,您会在数据库中的问题中找到与他的问题的关闭匹配,然后将相应的答案返回到该问题。

实施明智的。你实际上应该有两个数据库。一个简单的表,包含问题ID,问题文本和答案文本。另一个是您的搜索索引,您构建的是使用问题文本及其ID。我建议你使用Vector Space Model。您可以使用Apache Lucene,Solr或ElasticSearch。我自己更喜欢ElasticSearch。

P.S。由于您是想在数据库中存储问题的人,因此这些问题的唯一用途是与用户问题相匹配,即没有人真正看到它们。也许,然后,你可以使它们更加冗长,更相关的关键词,并播放他们的格式,使匹配更容易。

P.S。通常你使用TF-IDF作为索引,余弦距离用于匹配文本相关性,但我记得曾经在类似的任务中,由于问题足够短,禁用TF-IDF给了我更好的结果。我想在这里说的是,您应该尝试使用这些参数,看看哪种方法最适合您。

P.S.Other模型,与向量空间模型相对,是二元独立模型和Language Model。检查他们here。我在this Python library中实现了语言模型,当然,你可以找到更好的库。我喜欢语言模型,因为它需要更少的内存,并且有更好的方法来处理看不见的术语(单词)。