一种意图识别算法。
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,带有键chances和index表示在相似性方面,数据集的哪个索引最有可能用于给定的查询,而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_words和key_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)的大脑,这是一个开源平台,专门为语音控制应用程序构建,并模拟虚拟助理的大部分工作自动执行日常任务。