Java中是否有LSI的开源实现?我想将该库用于我的项目。我见过jLSI,但它实现了其他一些LSI模型。我想要一个标准模型。
答案 0 :(得分:5)
您是否考虑过LDA(Latent Dirichlet分配)?我也没有,但我最近遇到了与LSI相同的问题(专利)。根据我的理解,LDA是一种相关/更强大的技术。 http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation显然与开源实现有一些联系。
答案 1 :(得分:1)
google搜索java LSI导致a similar question推荐SemanticVectors。在Lucene之上构建的包与LSI“相似”。我不知道它是否比jLSI实施更接近。
该线程还提到LSI已获得专利,并且没有很多实现。因此,如果您需要标准实现,则可能必须使用java以外的语言。
答案 2 :(得分:1)
S-Space Package具有LSA的开源版本,具有LSI文档向量的绑定。 (两种方法都在相同的术语 - 文档矩阵上运行,除输出外都是等效的。)这是一种使用thin-SVD的相当可扩展的方法。我已经用它在所有维基百科上运行LSI而没有任何问题(在删除不常发生的少于5次的条款之后)。
正如Scott Ray所提到的,SemanticVectors包也有一个很好的LSI实现,最近切换到使用相同的瘦SVD(SVDLIBJ),所以你可能会检查出来,就好像你之前没有。
答案 3 :(得分:1)
答案 4 :(得分:0)
我相信LSA / LSI在1989年获得专利,这意味着该专利应该刚刚过期。希望我们很快就会看到一些不错的开源应用程序。
答案 5 :(得分:0)
您是否尝试过语义向量包?