Machine learning 借助潜在Dirichlet分配(LDA)或命名实体确定文档新颖性/相似性

Machine learning 借助潜在Dirichlet分配(LDA)或命名实体确定文档新颖性/相似性,machine-learning,lucene,nlp,similarity,lda,Machine Learning,Lucene,Nlp,Similarity,Lda,给定一个包含大量(短)文档(约100万)的索引或数据库,我试图对每个新传入的文档进行某种新奇性检测 我知道我必须计算新文档与索引中每个文档的相似性。如果相似性低于某个阈值,则可以认为该文档是新颖的。我想做的一个常见方法是使用向量空间模型并计算余弦相似性(例如,通过使用ApacheLucene) 但是这种方法有两个缺点:1)它的计算代价很高,2)它没有分别包含文档和单词的语义 为了克服这些缺点,我的想法是使用LDA主题分发或命名实体来用语义扩充Lucene索引和查询(即文档集合和每个新文档) 现在

给定一个包含大量(短)文档(约100万)的索引或数据库,我试图对每个新传入的文档进行某种新奇性检测

我知道我必须计算新文档与索引中每个文档的相似性。如果相似性低于某个阈值,则可以认为该文档是新颖的。我想做的一个常见方法是使用向量空间模型并计算余弦相似性(例如,通过使用ApacheLucene)

但是这种方法有两个缺点:1)它的计算代价很高,2)它没有分别包含文档和单词的语义

为了克服这些缺点,我的想法是使用LDA主题分发或命名实体来用语义扩充Lucene索引和查询(即文档集合和每个新文档)

现在,对于具体的实施,我完全不知所措。我已经使用Mallet训练了一个LDA主题模型,我还能够在语料库上进行命名实体识别。但我不知道如何使用这些主题和命名实体来实现新颖性检测。更具体地说,我不知道如何使用这些特性创建索引和查询

例如,将一个文档的所有命名实体存储为索引中的一个单独字段、添加某些权重(即增加权重)并使用多字段查询是否已经足够?我不认为这已经为相似性检测添加了某种语义。这同样适用于LDA主题:将每个术语的主题概率添加为有效负载并实现新的相似性分数是否足够

如果您能提供一些提示,甚至是代码片段,说明如何将LDA主题或命名实体合并到Lucene中,以进行某种新颖性检测或语义相似性度量,我将非常高兴


提前谢谢。

我认为这不是最好的提问网站。也许试试或者好吧,我也会在那里试试。