Hello Van,

it looks like splitting of compound words. This topic was discussed in
the thread "Analysis/tokenization of compound words"

The main idea is as follow:
You have a corpus (lexicon/dictionary). You want to split a word. Build
letter wise two part words and search them in the corpus. If you can
find them you can split your word at these parts. You can do that
recursively finding all sub-parts. This method searches the smallest
possible words. [1]
If you have a corpus without compound words you can have a better
quality by searching the largest possible words by searching the word
first and then splitting it if you couldn’t find it. Do this recursively
as well. [2]

Warning: The results are usually not linguistically correct. How ever,
the quality should be good enough for searching.


[1] C. Monz and M. De Rijke: Shallow Morphological Analysis in
Monolingual Information Retrieval for Dutch, German and Italian,
Language & Inference Technology, University of Amsterdam.

[2] Pasqualino Imbemba: A Splitter for German Compound Words, Free
University Of Bolzano, Bolzano, 2006

Van Nguyen wrote:
I've been trying to brainstorm on this but could not figure out a way to
go about this.

Let's say I'm searching for "batman". I want results that include:


bat man



or if I search screwdriver, I would want results to include:


screw drivers


I've tried using the SnowballAnalyzer. I've thought about creating a
"SynonymAnalyzer" as described in the Lucene In Action book (but that
would mean I would have to know all the synonyms for each word I need to
index - at this point I do not). Any suggestions on how to go about

To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org

Search Discussions

Discussion Posts


Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 3 | next ›
Discussion Overview
groupjava-user @
postedDec 1, '06 at 1:30a
activeDec 1, '06 at 10:10a



site design / logo © 2022 Grokbase