Dear list -- a question on potential storage of data originating from "topic models" like LSA (latent semantic analysis) and LDA (latent Dirichlet allocation). Packages like Mahout or SemanticVectors allow extraction of latent topics from an existing Lucene corpus. They don't have the storage of the actual latent concepts integrated into Lucene's efficient backend. So storing those data withing Lucene's segments may be a benefit for them.

My question: In the IndexWriter backend, is there any reasonable way you can think of to store extra information after segments have been created but before a commit() ? (This way any IndexSearcher/Reader always sees a consistent index.) Further, after the optimize() step, another modification of the extra information in index should be possible.

Example scenario: An IndexWriter.preCommit() starts the LDA algorithm from the information in the index and stores topic related data with the segments currently active for indexing, but in extra files. The extra files contain document-specific topic float vectors as well as segment-global float vectors. During commit(), the extra files are merged with the segments (which involves some math processing again). At the end of the indexing process, the LDA algorithm is rerun, improving the topic model globally, thus again modifying the extra files.

What may be a point of departure? Adding a modified TermVector-like storage approach and hooking it to extended Segment* classes?

Best regards

gregor



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to