2015-11-18 39 views
3

我使用UMBC提供的语义相似度web API。在我的java程序中,我发送一个HTTP请求 http://swoogle.umbc.edu/SimService/GetSimilarityoperation=api&phrase1=XXXX&phrase2=XXXX 并且我解析输出以获得结果。UMBC语义相似度实现

我遇到的问题是我正在处理大规模数据。这需要很长时间,我必须做很多次。我想知道是否有更快的方法来查询Java中的Web API?或者,有没有这个工具的可执行版本?对于不是NLP专家的人来说,实现它有多容易?

回答

2

听起来好像您想要快速处理多个短语对,并且此处提供的API不可用。

您避免网络的痛苦选择是:

  1. 使用备用的API,在批量使用。如果有一个调用接受了许多对短语并且一次输出很多相似性分数,这可以让你更快地进行 - 但只要他们的API体现了(lhs, rhs) -> score的函数调用,您将受到如何限制快速您可以调用该功能。

有一个related question被关闭作为脱离主题,但其中提到cortical.io作为提供“批量”比较的API。

  1. 要求源代码自己运行它。与托管API的组织联系并询问他们是否可以提供其源代码(公开或仅限于您)。
  2. 自己实施他们的方法或类似的东西。

为了帮助3.,我在下面提供了一些资源。

围绕他们的websitegroup's publication page,我发现这本出版物可能很有趣。

Abhay L. Kashyap et al。,"Robust Semantic Text Similarity Using LSA, Machine Learning and Linguistic Resources",语言资源与评估,2016年1月,73下载。

的东西,更容易实现,并且至少有竞争力的表现,我会建议在寻找词汇向量方法相似性,像Stanford's GloVeGoogle's word2vec(你可能需要重新培训以获得您想要的大小的短语,或者你可以玩平均技巧或添加矢量来表示短语)。