2015-11-18 38 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(你可能需要重新培訓以獲得您想要的大小的短語,或者你可以玩平均技巧或添加矢量來表示短語)。