我正在使用UMBC提供的语义相似性Web API。在我的java程序中,我发送了一个HTTP请求 http://swoogle.umbc.edu/SimService/GetSimilarityoperation=api&phrase1=XXXX&phrase2=XXXX 然后解析输出以获得结果。
我遇到的问题是我正在处理大规模数据。这需要很长时间,我必须多次这样做。我想知道是否有更快的方法来查询java中的Web API?或者,这个工具有可实现的版本吗?对于不是NLP专家的人来说,实施它有多容易?
答案 0 :(得分:2)
听起来你想快速处理很多短语对,而且这里提供的API不可用。
您避免网络痛苦的选择是:
(lhs, rhs) -> score
的函数调用,您就会受到调用函数的速度的限制。 related question因为偏离主题而被关闭,但提到cortical.io是一个提供"批量"的API。比较
为了帮助3.,我在下面提供了一些资源。
围绕他们的website和group's publication page,我发现这篇出版物可能很有趣。
Abhay L. Kashyap等人,"Robust Semantic Text Similarity Using LSA, Machine Learning and Linguistic Resources",语言资源和评估,2016年1月,73次下载。
对于更易于实施且性能至少具有竞争力的内容,我建议您查看相似性的单词向量方法,例如Stanford's GloVe或Google's word2vec(您可能需要重新培训)获得你想要的大小的短语,或者你可以通过平均或添加矢量来表示短语。