但是最近,我发现该链接对理解LSA的原理很有帮助,无需过多的数学运算。 http://www.puffinwarellc.com/index.php/news-and-articles/articles/33-latent-semantic-analysis-tutorial.html。它为我进一步发展奠定了良好的基础。
目前,我正在寻找有关概率潜在语义分析/索引的类似介绍。更少的数学知识,更多的例子解释了其背后的原理。如果您会知道这样的介绍,请告诉我。
可以用来查找句子之间的相似度吗?它可以处理多义吗?
是否有相同的python实现?
谢谢你。
最佳答案
有一个很好的talk by Thomas Hofmann可以解释LSA及其与概率潜在语义分析(PLSA)的关系。该演讲具有一些数学意义,但比PLSA论文(甚至是Wikipedia页面)更容易理解。
PLSA可用于获取句子之间的某种相似性度量,因为两个句子可以看作是根据潜在类别上的概率分布得出的简短文档。但是,您的相似性在很大程度上取决于您的训练集。用于训练潜在类模型的文档应反射(reflect)您要比较的文档的类型。用两个句子生成PLSA模型不会创建有意义的潜在类。同样,使用语境非常相似的语料库进行训练可能会创建潜在类,这些潜在类对文档的细微更改过于敏感。而且,由于句子包含的 token 相对较少(与文档相比),所以我不认为您会从PLSA的句子级别获得高质量的相似性结果。
PLSA不处理多义性。但是,如果您担心多义性,则可以尝试在输入文本上运行单词义消除歧义工具,以正确的方式标记每个单词。在这个带标签的语料库上运行PLSA(或LDA)将消除多义性在结果文档表示中的影响。
正如Sharmila所指出的那样,潜在的Dirichlet分配(LDA)被认为是用于文档比较的最新技术,并且优于PLSA,后者倾向于过度拟合训练数据。此外,还有更多工具可以支持LDA并分析您使用LDA获得的结果是否有意义。 (如果您喜欢冒险,可以阅读David Mimno's two papers from EMNLP 2011,了解如何评估从LDA获得的潜在主题的质量。)
关于nlp - 概率潜在语义分析/索引-简介,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6482507/