使用Gensim的多维文档

时间:2017-08-28 20:31:20

标签: python machine-learning tensorflow gensim tf-idf

我正在处理文档比较引擎/搜索引擎。我目前正在使用它如下......

search_doc = ["test search"]
documents = ["doc 1 text", "doc 2 text", "doc 3 text", "..."]

然后比较结果。

我想做的事情(用最简单的术语来说)是多维文档(具有多个维度的文档,而不仅仅是"文档")...例如..

documents = {
                { "doc 1 title", "doc 1 body", "doc 1 tags" },
                { "doc 2 title", "doc 2 body", "doc 2 tags" },
                { "doc 3 title", "doc 3 body", "doc 3 tags" }
                { ... }
            }

并且能够对结果进行加权(例如,标题为0.6,正文为0.4等)。

我的问题是......有没有办法在Gensim中执行此操作,或者我是否需要为文档的每个元项创建单独的文档(例如,与每个元项(标题,正文,标记)进行比较)作为单独的文档,然后使用文档key / id?

在事后组合权重

我不确定我是否能很好地解释这一点,但如果我能改进我的问题,请告诉我。

谢谢。

1 个答案:

答案 0 :(得分:1)

Gensim的主要算法(如LDA或Doc2Vec)是根据不同的单个文档进行训练的,不了解子字段或可组合的子部分。因此,您必须自己建模。

如果您的最终目标要求每个字段单独评分,则​​应为每个字段创建单独的文档。

您可能还想创建一个由所有字段组成的完整文档。

然后,您可以在所有完整文档和字段组合上训练模型,或者为每个文档类型单独模型。

您可能希望比较,重复数据删除或组合字段与文档的分数,这将非常依赖于您的数据和项目目标,以及您自己的实验和自定义评估。 (例如,也许您的用户对身体匹配最满意,因此该字段中的任何相似性都应该在您的显示中具有额外的权重 - 等等。)