3

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

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

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

举个例子:

doc1 : 字段 CONTENT 有以下术语:这是快乐的世界。

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

现在我需要的向量应该是

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

对于 doc1,这个向量的值是 <1 1 1 1 1 1 0 0 0 0>

对于 doc2,这个向量的 vakue 是 <1 1 0 1 0 0 1 1 1 1>

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

4

1 回答 1

2

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

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

这篇博客文章描述了从 Lucene/Solr 文档生成特征向量,尽管我认为它并没有比你已经做过的更进一步。

于 2011-02-22T07:17:24.753 回答