我计划将NLTK,Gensim和Scikit Learn用于某些NLP /文本挖掘。但是我将使用这些库来处理我的组织数据。问题是在使用这些库时“它们是通过API调用来处理数据”还是从python shell中取出数据进行处理。这是一个安全问题,所以想知道是否有人提供任何文档供参考。

感谢对此的任何帮助。

最佳答案

通常,使用NLTK,gensim和scikit-learn,算法将在其源代码中实现,并在数据上本地运行,而无需发送数据进行处理。

我从未注意到这些软件包的任何文档/功能都提到了对远程/云服务的依赖,也从未见过用户对此进行讨论。

但是,它们都是大型库,具有许多我从未审查过的功能,并且有许多贡献者添加了新选项。而且我不知道项目负责人是否已明确表示绝不依赖外部服务。

因此,不可能给出永久的确定性答案。如果您的项目需要考虑这种安全性,则应仔细查看所使用的这些函数/类/方法的文档,甚至是源代码。 (这些项目都不会故意隐藏对外部服务的依赖。)

您也可以在受防火墙限制其与外部服务联系的系统上开发,测试和部署代码,以便您可以检测并阻止与外部计算机的任何未公开或无意的通信。

还请注意,这些库中的每个库又依赖于其他公共库。如果您的关注还扩展到了粗心地或有意地,恶意插入的私有数据泄露方法的可能性,那么您将需要对这些库及其引入的所有其他库进行更深入的分析。 (仅信任顶级文档可能是不够的。)

此外,这些库中的每一个都具有实用程序功能,可根据明确的用户需求下载示例数据集或共享的非代码资源(如停用词或词典列表)。使用此类功能不会将您的任何数据上传到其他地方,但可能会泄漏您正在使用特定功能。上述基于防火墙的方法可能会干扰此类下载步骤。在高度警惕/偏执的情况下,您可能需要特别注意此类额外下载方法的使用和行为,以确保他们所做的与更改本地环境或执行/替换其他方法所要做的一样。库代码。

最后,通过坚持使用广泛的软件包/功能以及仍然可以持续使用的较旧版本,您可能会从一些“社区保证”中受益,即软件包的行为已得到很好的理解,而没有令人惊讶的依赖关系或漏洞。也就是说,许多其他用户已经对这些代码路径给予了一定的关注,分析和实际使用–因此,可能已经发现,公开和解决了任何问题。

关于python - NLTK,Gensim,Scikit Learn的API调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59845191/

10-14 17:53
查看更多