2010-05-21 18 views
8

में सर्च कर रहे हैं से अधिक पद स्तर एनोटेशन परतें मैं कई विभिन्न natural language processing (NLP) उपकरण से इस तरह के part-of-tags, chunks from a shallow parser, name entities के रूप में अंतर्निहित पाठ पर टिप्पणी की परतों, और दूसरों के साथ एक डेटा सेट है। The man went to the store की तरह एक वाक्य के लिए, एनोटेशन देखने की तरह हो सकता है:अनुक्रमण और Lucene

 

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", मुझे अनिर्दिष्ट पर टैग की जांच करने की आवश्यकता है, और इस प्रकार गैर मिलान, शर्तें।

+0

क्या आपको एक संतोषजनक समाधान मिला? – enguerran

उत्तर

1

आप जो देख रहे हैं payloads हैं। इस विषय पर ल्यूसिड इमेजिनेशन में detailed blog entry है। पेलोड आपको अलग-अलग शर्तों के बारे में मेटाडेटा के बाइट सरणी को स्टोर करने की अनुमति देता है। एक बार जब आप अपने डेटा को पेलोड के साथ अनुक्रमित कर लेते हैं, तो आप एक नई समानता तंत्र बना सकते हैं जो स्कोरिंग के दौरान आपके पेलोड को खाते में ले जाता है।

+0

मैंने सोचा कि पेलोड का उपयोग केवल दस्तावेजों की रैंकिंग को समायोजित करने के लिए किया जा सकता है। क्या वास्तव में यह चुनने के लिए भी उपयोग किया जा सकता है कि कौन से दस्तावेज़ लौटाए जाते हैं? – dmcer

+0

निश्चित रूप से, पेलोड स्कोरिंग के साथ काम करते हैं लेकिन स्कोरिंग वह तरीका है जिस पर दस्तावेज़ पुनर्प्राप्त किए जाते हैं। दस्तावेजों को शर्तों के आधार पर बाहर रखा जा सकता है - प्रश्नों के बारे में सोचें। दूसरी वस्तु करने के लिए आपको अपना खुद का प्रश्नपत्र लिखना पड़ सकता है। –

0

आप वास्तव में SpanQuery का उपयोग कर ल्यूसीन में पाठ के पैटर्न की खोज कर सकते हैं और एक दूसरे के प्रश्न शब्द हो सकते हैं, और यहां तक ​​कि जिस क्रम में वे प्रकट होते हैं, सीमित करने के लिए ढलान दूरी समायोजित कर सकते हैं।

1

शायद आप जो भी पूछ रहे हैं उसे हासिल करने का एक तरीका है एक ही स्थिति (यानी, शब्द, पीओएस, चंक, एनईआर) पर एनोटेशन के प्रत्येक वर्ग को इंडेक्स करना और एक अद्वितीय स्ट्रिंग के साथ प्रत्येक एनोटेशन को उपसर्ग करना। शब्दों के लिए उपसर्गों से परेशान मत करो। उपसर्गों को संरक्षित करने के लिए आपको एक कस्टम विश्लेषक की आवश्यकता होगी, लेकिन फिर आप उन वाक्यविन्यासों का उपयोग करने में सक्षम होना चाहिए जिन्हें आप प्रश्नों के लिए चाहते हैं।

विशिष्ट होना करने के लिए, मैं क्या प्रस्ताव कर रहा हूँ कि आप सूचकांक निर्दिष्ट पदों पर निम्न टोकन:

Position Word POS  Chunk  NER 
======== ==== ===  =====  ======== 
1  The POS=DT CHUNK=NP NER=Person  
2  man POS=NN CHUNK=NP NER=Person 
3  went POS=VBD CHUNK=VP  - 
4  to  POS=TO CHUNK=PP  - 
5  the POS=DT CHUNK=NP NER=Location 
6  store POS=NN CHUNK=NP NER=Location 

अर्थ विज्ञान पाने के लिए, SpanQuery या SpanTermQuery टोकन अनुक्रम संरक्षित करने के लिए इस्तेमाल करते हैं।

मैं लेकिन एक ही स्थान पर शर्तों के विभिन्न वर्गों का अनुक्रमण स्थिति के प्रति संवेदनशील प्रश्नों भाव जैसे

एनईआर = व्यक्ति एनईआर पर पहुंचे मूल्यांकन करने के लिए सही काम के लिए अनुमति चाहिए इस प्रयास नहीं किया है = स्थान

अपने उदाहरण से अंतर नोट करें: मैंने Word = prefix को डिफ़ॉल्ट के रूप में इलाज करने के लिए हटा दिया है। साथ ही, उपसर्ग वाक्यविन्यास की आपकी पसंद (उदा।, "वर्ग =") आपके द्वारा अनुक्रमणित दस्तावेज़ की सामग्री को बाधित कर सकती है। सुनिश्चित करें कि दस्तावेजों में वाक्यांश शामिल नहीं हैं, या आप उन्हें प्री-प्रोसेसिंग में किसी भी तरह से बचते हैं। यह निश्चित रूप से, विश्लेषक से संबंधित है जिसका उपयोग आपको करने की आवश्यकता होगी।

अद्यतन: मैं पाठ में अनुक्रमण वाक्य और पैराग्राफ सीमाओं के लिए इस तकनीक का उपयोग (break=sen और break=para टोकन का प्रयोग करके) इतना है कि मैं तय कर सकता है जहां वाक्यांश क्वेरी से मेल खाता तोड़ने के लिए। काम ठीक लगता है।

संबंधित मुद्दे