我正在尝试使用mahout的lucene.vectors从lucene索引中提取数据。该索引包含由Nutch抓取的网页内容。被索引的一些字段是:标题、url、id、文本和类别。
我知道我可以使用lucene.vectors从索引中获取数据并将其转换为向量。然而,我不能理解的是,如何告诉这个工具Lucene中的哪个字段包含标签。对于我的场景,category字段是label字段。
我使用的是mahout 0.9。
提前谢谢你,阿米尔
发布于 2014-06-13 00:43:13
您可能需要一个中间步骤,首先将lucene索引转换为一个序列文件,该文件采用键、值对,其中key代表您的标签。SequenceFilesFromLuceneStorage.java允许您这样做。说明内容如下-
/** *使用指定的id字段作为关键字,以内容字段作为值,从Lucene索引生成序列文件。*使用{@link LuceneStorageConfiguration} bean配置该类。*/
我相信引用只是将所有文本放入一个向量( lucene.vector - https://mahout.apache.org/users/basics/creating-vectors-from-text.html)中。您需要一个<Text, VectorWritable>格式的序列文件,才能拥有一个带有标签的向量。
然后,您可以简单地读取序列文件并获得向量和标签。如果想要计算TFIDF,可以使用seq2sparse或SparseVectorsFromSequenceFiles.java
或者,您也可以手动完成此操作,方法是先提取标签,然后将其余部分发送到lucene.vector。
https://stackoverflow.com/questions/24057388
复制相似问题