我有一個數據集,其底層文本上有多個註釋層,如part-of-tags,chunks from a shallow parser,name entities和其他各種natural language processing(NLP)工具。對於像The man went to the store
一個句子,註釋可能看起來像:索引和搜索Lucene中的Word級別註釋層
Word POS Chunk NER ==== === ===== ======== The DT NP Person man NN NP Person went VBD VP - to TO PP - the DT NP Location store NN NP Location
我想指數一堆有了這樣的使用Lucene批註文檔,然後在不同的層進行搜索。簡單查詢的一個例子是檢索華盛頓被標記爲人的所有文檔。雖然我不是絕對致力於符號,語法如下最終用戶可能輸入查詢:
查詢:Word=Washington,NER=Person
我也想這樣做涉及順序更復雜的查詢跨越不同層的註釋,例如找到所有有文字標記的文件人後面跟着arrived at
後跟一個標籤位置。這樣的查詢可能如下:
查詢:"NER=Person Word=arrived Word=at NER=Location"
什麼是去使用Lucene接近這個好辦法?無論如何索引和搜索包含結構化令牌的文檔字段?
有效載荷
一個建議是嘗試使用Lucene的payloads。但是,我認爲有效載荷只能用於調整文檔的排名,而且它們不用於選擇返回哪些文檔。
後者很重要,因爲對於某些使用情況,包含模式的文檔的數量確實是我想要的。
另外,只檢查符合查詢條件的有效載荷。這意味着,有效載荷只能甚至與第一例子查詢,Word=Washington,NER=Person
的排名,因此我們只是想確保長期Washingonton
被標記爲Person
幫助。但是,對於第二個示例查詢"NER=Person Word=arrived Word=at NER=Location"
,我需要檢查未指定的標籤,因此不匹配條款。
您是否找到滿意的解決方案? – enguerran 2013-03-17 11:26:42