Lucene项向量多元贝叶斯模型期望最大化

时间:2011-02-21 19:52:18

标签: lucene expectation-maximization

我正在尝试为文档聚类实现期望最大化算法。我打算使用Lucene Term Vectors来查找2个文档之间的相似性。使用朴素贝叶斯有两种EM算法:多变量模型和多项式模型。简单来说,多项模型使用文档中不同单词的频率,多变量模型只使用文档中是否存在单词的信息(布尔向量)。

我知道Lucene中的术语向量存储当前文档中存在的术语及其频率。这正是多项模型所需要的。

但多变量模型需要以下内容: 存储或不存在特定术语的向量。因此,所有文件中的所有术语都必须由此向量处理。

举个例子:

doc1:field CONTENT具有以下术语:这是一个愉快的世界。

doc2:field CONTENT有以下术语:这个神奇的世界充满了讽刺的人。

现在我需要的矢量应该是

<这是令人惊叹的充满讽刺的人的世界> (它包含所有文件中的所有单词)

对于doc1,此向量的值为< 1 1 1 1 1 0 0 0 0>

对于doc2,该向量的vakue为< 1 1 0 1 0 0 1 1 1 1>

有没有办法在Lucene中生成这样的布尔矢量?

1 个答案:

答案 0 :(得分:2)

我首先生成多项式向量,然后处理它们(可能是它们的文本表示)以获得多元向量。

如果文档集不是很小,则存储完整的向量是浪费的。您应该有一个稀疏表示,因为每个文档都包含一小部分可能的术语。

This blog post描述了从Lucene / Solr文档生成特征向量,尽管我认为它不会比你已经做的更远。

相关问题