2011-12-11 39 views
1

我需要將lucene的StandardTokenizer改編爲關於twitter數據的一些特殊用途。目前,我使用StandardTokenizer來標記一些推文,我想工作。它工作得很好,但現在我想擴展行爲(例如也考慮#hashtags和@somebody,考慮笑臉:),刪除網址,...)。lucene:將StandardTokenizer改編爲Twitter數據

有人可以告訴我 - 或者甚至給我一個方向 - 我該如何輕鬆做到這一點?我知道,寫我自己的標記生成器將是最好的選擇,但我很新的Lucene的,我不知道如何下手......

我希望有人能幫助我:)

最佳, Michael

回答

2

通過使用lucene的CharFilter API(也可能是TokenFilters,取決於您希望搜索的工作方式),您可以大幅擴展StandardTokenizer的標記。

最終,如果StandardTokenizer與你想要的完全不同,那麼它的錯誤標記器,但如果它關閉,這可以更容易。

CharFilter本質上是一個FilterReader,它允許您在Tokenizer運行之前修改文本。它也跟蹤偏移量調整,以便突出顯示仍然有效!

要添加CharFilters,最簡單的方法是擴展ReusableAnalyzerBase並覆蓋它的initReader方法,用所需的CharFilters封裝傳入的閱讀器。

您可能希望將MappingCharFilter作爲開始,它允許您預先定義一些映射來處理特殊的twitter語法。這裏有一些示例/想法: http://markmail.org/message/abo2hysvfy2clxed

+0

非常感謝。那正是我一直在尋找的東西。 – Michael