UMBC 语义相似度实现

3
我正在使用UMBC提供的语义相似性Web API。在我的Java程序中,我发送一个HTTP请求http://swoogle.umbc.edu/SimService/GetSimilarityoperation=api&phrase1=XXXX&phrase2=XXXX,并解析输出以获取结果。
我遇到的问题是我正在处理大规模数据。这需要很长时间,并且我必须多次执行它。我想知道是否有更快的方法在Java中查询Web API?或者,是否有可实现版本的此工具?对于不是自然语言处理专家的人来说,实现它有多容易?
1个回答

2
听起来你想快速处理许多短语对,但是这里提供的API无法胜任。
避免网络繁忙的选项有:
  1. 使用批量可用的备用API。 如果有一个调用可以同时接受许多短语对并输出许多相似度分数,这将允许您更快地进行操作--但只要他们的API体现了函数调用(lhs,rhs) -> score,您将受到如何调用该函数的限制。

有一个相关问题被关闭为不属于主题,但提到cortical.io作为提供“批量”比较的API。

  1. 请求源代码以便自行运行。 联系托管API的组织,并询问是否可以公开或仅向您提供其源代码。
  2. 自行实现他们的方法或类似方法。

为了帮助3,我提供了一些资源。

在他们的网站website和该团体的出版页面group's publication page上查找,我找到了这篇可能有趣的出版物。
Abhay L. Kashyap等人,《使用LSA、机器学习和语言资源的强大的语义文本相似度》,《语言资源与评价》杂志,2016年1月,已下载73次。
如果你想要实现更简单且性能至少具有竞争力的方法,我建议看一下词向量方法来进行相似度计算,例如斯坦福的GloVe谷歌的word2vec(你可能需要重新训练以获得所需大小的短语,或者可以通过对向量进行平均或加法来表示短语)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接