我正在尝试使用mahout的lucene.vectors从lucene索引中提取数据。该索引包含Nutch抓取的网页内容。索引的一些字段是:title,url,id,text和category。
我知道我可以使用lucene.vectors从索引中获取数据并将其转换为向量。但是,我无法理解的是如何告诉这个工具Lucene中的哪个字段包含标签。对于我的场景,类别字段是标签字段。
我正在使用mahout 0.9。
提前致谢, Ameer
答案 0 :(得分:0)
您可能需要一个中间步骤,首先将lucene索引转换为一个序列文件,该文件采用键,值对,其中key表示您的标签。 SequenceFilesFromLuceneStorage.java
允许您这样做。说明如下 -
/ ** *使用指定的Lucene索引生成序列文件 id字段作为键,内容字段作为值。 * 配置 这个类有一个{@link LuceneStorageConfiguration} bean。 * /
我相信lucene.vector只是将所有文本放入一个向量中(参考 - https://mahout.apache.org/users/basics/creating-vectors-from-text.html)。您需要一个格式为<Text, VectorWritable>
的序列文件,以便有一个向量和一个标签。
然后您可以简单地读取序列文件并获取向量和标签。如果您想计算TFIDF,可以使用seq2sparse
或SparseVectorsFromSequenceFiles.java
或者您也可以先通过提取标签并将其余部分发送到lucene.vector来手动执行此操作。