一种意图识别算法。

sounder的Python项目详细描述


#发声器API

本节专门介绍sounder库api,它是[sounder算法](https://slapbot.github.io/documentation/resources/algorithm)的一个抽象,阅读全文,解释sounder是如何工作的,可以并入到项目中,也可以在哪里使用,请参考这里:[sounder explained](https://slapbot.github.io/documentation/resources/algorithm),[pdf version](https://slapbot.github.io/documentation/resources/algorithm/sounder.pdf

  • [安装](安装)
  • [实例化类](实例化)
  • [搜索方法](搜索)
  • [概率法](概率)
  • [过滤方法](过滤)
  • [实用](实用)

<;hr>;

<;a name=“installation”>;

##安装

将Sounder Library安装到您的应用程序中非常简单,只需使用pippackage manager,就可以从您喜欢的命令行执行一个简单的命令,如下所示:

pip install sounder

<;hr>;

<;a name=“instantiate”>;

##实例化类

第一件也是最重要的事情就是像这样导入类。

from sounder import Sounder

然后简单地实例化类。

sounder = Sounder([[‘facebook’, ‘notifications’], [‘twitter’, ‘notifications’]])

您可以将数据集作为位置参数(可选)传递给sounder构造函数,或者稍后使用 返回self的方法。

sounder.set_dataset([[‘facebook’, ‘notifications’], [‘twitter’, ‘notifications’]])

正如您已经注意到的,为了使用search方法,数据集需要是包含字符串元素的二维列表。

<;hr>;

<;a name=“Search”>;

##搜索方法

search(query,dataset=none,metaphone=false)方法接受一个位置参数(强制),该查询需要是一个由需要在数据集中搜索的字符串组成的列表,如下所示。

sounder = Sounder([[‘facebook’, ‘notifications’], [‘twitter’, ‘notifications’], [‘note’, ‘something’]]) index = sounder.search([‘trackbook’, ‘notifs’])

search方法总是返回它发现的给定数据集最可能相同的索引。在这种情况下,索引将等于0。

此方法采用其他可选参数,如下所示:

  • dataset:它只是一个数据集,如果在实例化类时不需要set dataset,那么可以将它作为另一个参数传递。不过,还是需要一个二维列表。
  • metaphone:它默认为false,这与您不想在主算法之外使用metaphone这一事实产生了共鸣。在真实状态下,所有的数据集和查询首先转换为变音,然后输入到算法中,在输入数据非常随机或使用通用术语的情况下提高效率。

<;hr>;

<;a name=“Probability”>;

##概率法

概率(query,dataset=none,metaphone=false,detailed=false,prediction=false)方法再次接受一个位置参数,该参数是需要与数据集进行比较的查询。(由字符串组成的列表。),如是。

sounder = Sounder([[‘facebook’, ‘notifications’], [‘twitter’, ‘notifications’], [‘note’, ‘something’]]) chances = sounder.probabiltiy([‘trackbook’, ‘notifs’])

probability方法根据给定情况下的可选参数返回结果:

  • 没有传递可选参数:它返回数据集大小的列表,由查询列表最有可能是数据集的概率组成,该概率是由0.0到1.0之间的值(0.0表示没有匹配项)和1.0表示所有匹配项产生的。
  • detailed:如果detailed参数设置为true,则返回嵌套列表格式的数据集大小,其中第一个元素是查询列表对数据集最有可能的概率,而第二个元素是另一个列表数据集第i个数据集的大小,包括通过解决赋值问题,在查询中找到第i个数据的第j个字,该值介于0.0到1.0之间,其中0.0表示不匹配。
  • prediction:如果设置为true,则返回一个dict,带有键chancesindex表示在相似性方面,数据集的哪个索引最有可能用于给定的查询,而chances表示0.0到1.0之间的值,其中0.0表示不匹配。

可以设置的另外两个参数是:

  • dataset:如果您没有在实例化上设置数据集,请不要担心,将其作为参数传递。还有一件事,如果您只是比较两个字符串元素列表,那么这次不一定需要是一个二维列表。像这样。

    information = sounder.probability([‘trackbook’], dataset=[‘facebook’])

sounder基本上是在内部自动将它映射到二维列表中,让您能够比较任意两个单词列表。

  • metaphones:同样,它与搜索方法完全相同。

<;hr>;

<;a name=“filter”>;

##过滤方法

过滤器(query,reserved_sub_words=none)基本上是一个实用程序,它提供您从字符串中过滤停止字,例如,“嘿,斯蒂芬妮,现在几点了?“会过滤掉['hey','what','is','the']因为它们没有更高的含义,留下了像['stephanie','time','right','now']

此方法只是一个实用程序,可以帮助您从单个库中识别整个意图,但您可以自由使用任何类型的系统。它返回一个字典,其中包含sub_wordskey_words等键,它们分别以列表形式停止字符串中的单词和字符串中的关键字。

  • reserved_sub_words:是用于筛选停止字的筛选器,您可以在方法本身中传递自己的筛选器,也可以通过使用返回自身实例的set_filter(reserved_sub_words)方法传递自己的筛选器。注意:确保过滤器是包含您认为是停止词的所有单词的字典。默认值如下:

    { “what”, “where”, “which”, “how”, “when”, “who”, “is”, “are”, “makes”, “made”, “make”, “did”, “do”, “to”, “the”, “of”, “from”, “against”, “and”, “or”, “you”, “me”, “we”, “us”, “your”, “my”, “mine”, ‘yours’, “could”, “would”, “may”, “might”, “let”, “possibly”, ‘tell’, “give”, “told”, “gave”, “know”, “knew”, ‘a’, ‘am’, ‘an’, ‘i’, ‘like’, ‘has’, ‘have’, ‘need’, ‘will’, ‘be’, “this”, ‘that’, “for” }

<;hr>;

<;a name=“Practical Usage”>;

##实际使用

这个算法是[stephanie](https://slapbot.github.io)的大脑,这是一个开源平台,专门为语音控制应用程序构建,并模拟虚拟助理的大部分工作自动执行日常任务。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Maven的其他模块中看不到依赖模块中的java更改   http使用Java提交HTML表单数据,以检索从jsp应用程序下载的内容   因此,java JPA直接获取一个映射,而不是对象列表   java Dagger2:如何在多态性期间注入成员变量?   java如何在playFramework中重用控制器类的功能   java JavaMail到minecraft   java如何在RecyclerView滚动上下载更多Firebase对象?   PDFBOX org出现java Proc Groovy错误。阿帕奇。pdfbox。余弦。COSDocument finalize警告:警告:您没有关闭PDF文档   用java将英语翻译成本地语言   javascript不使用servlet将JSON对象传递给Java类   数据结构二进制搜索树泛型Java   如何在cmd中使用jar编译和执行java?   java如何用JPA连接表列?   java 2D Arraylist预测代码的输出   Java:“历史”对于cli命令,如何使输出“可编辑”?