我正在使用Gate在我的项目中实现自然语言处理模块。在下一步中,我希望系统支持多个用户。每个用户都有一组不同的领域词(我将其放入地名词典)。据我所知,gate使用大量静态资源,并且很难创建多个gate实例。是否有人对使用Gate实现多租户有任何想法?
提前非常感谢您。
PS:之所以使用gate,是因为它具有jape规则。如果您可以引入其他工具,那就更好了,该工具更易于自定义,并且具有基于规则的语法。
最佳答案
答案取决于您使用Gate应用程序的方式。在下面的想法中,我假设用户域地名词典位于其他PR之间(即Tokenizer,地名词典,JAPE规则)。
a)您使用Java代码中的gate应用程序。如果是,则可以根据用户标识符将地名词典删除/插入到SerialAnalyzerController中。您可以在内存中(如果地名索引不太大)并在执行之前根据当前USER_ID从SerialAnalyzerController添加/删除PR创建一个Map映射。
b)您使用gate应用程序,但不希望出现场景1。然后,您可以编写处理资源,该资源根据用户标识将使用指定的地名词典。可以在PR初始化阶段创建地图。
在PR“执行”方法中,您可以获取用户标识符(例如,从文档功能中获取),然后使用适当的地名词典。
c)尝试使用条件语料库PR。不知道这是否是最好的解决方案,但猜测它是否可以工作。
关于java - 与GATE的 Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18635068/