我想创建一个客户自助服务使用NLP (自然语言处理)。用户只需输入搜索语句,如“我如何支付每周费用?”自助服务将用最相关的常见问题和他们的答案回答用户。
这就是我构建一个简单的自助服务的逻辑,任何人都可以提出这样做的有效方法,或者一个现有的API可以为我提供这种服务。
提前感谢
发布于 2016-02-25 10:29:09
在我看来,你想要构建的东西就像是一个信息检索(搜索引擎)问题。假设您在数据库中有一组问题及其答案。您要做的是,当有人键入一个问题时,您会在数据库中的问题中找到与他的问题接近的匹配项,然后返回相应的答案。
从执行的角度来看。你应该有两个数据库。一个包含问题id、问题文本和答案文本的简单表。另一个是搜索索引,您构建的索引使用的是问题文本及其id。我建议你使用向量空间模型。为此,您可以使用Apache、Solr或ElasticSearch。我自己更喜欢ElasticSearch。
因为你是提出要存储在数据库中的问题的人,而这些问题的唯一用途就是与用户的问题相匹配,也就是说,没有人真正看到它们。也许,你可以让他们更详细,更相关的关键字,并播放他们的格式,以使匹配更容易。
通常你用TF-以色列国防军作为索引,余弦距离用于匹配文本相关性,但我记得有一次类似的任务,因为问题足够短,禁用TF-国防军给了我更好的结果。我想在这里说的是,你应该试着玩这些参数,看看什么对你最好。
P.S.Other模型与向量空间模型相反,是二元独立模型和语言模型模型。检查他们这里。我在这个Python库中实现了语言模型,但是当然,您可以找到更好的库。我喜欢语言模型,因为它需要更少的内存,并且有更好的方法来处理看不见的术语(单词)。
https://stackoverflow.com/questions/35577824
复制相似问题