UMBC语义相似度实现

时间:2015-11-18 15:47:03

标签: java nlp semantics semantic-web information-retrieval

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

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

1 个答案:

答案 0 :(得分:2)

听起来你想快速处理很多短语对,而且这里提供的API不可用。

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

  1. 使用批量提供的备用API。如果有一个呼叫接受了多对短语并一次输出多个相似度分数,这将使您更快 - - 但只要他们的API包含(lhs, rhs) -> score的函数调用,您就会受到调用函数的速度的限制。
  2. related question因为偏离主题而被关闭,但提到cortical.io是一个提供"批量"的API。比较

    1. 请求来源自行运行。联系托管API的组织,询问他们是否可以提供源代码(公开或仅供您使用)。
    2. 自己实施他们的方法或类似的东西。
    3. 为了帮助3.,我在下面提供了一些资源。

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

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

      对于更易于实施且性能至少具有竞争力的内容,我建议您查看相似性的单词向量方法,例如Stanford's GloVeGoogle's word2vec(您可能需要重新培训)获得你想要的大小的短语,或者你可以通过平均或添加矢量来表示短语。