2011-09-12 15 views
11

एसोसिएशन खनन टेक्स्ट कॉर्पोरेशन में संबंधित शर्तों को पुनर्प्राप्त करने के लिए अच्छे परिणाम देने लगता है। इस विषय पर कई काम हैं जिनमें प्रसिद्ध LSA विधि शामिल है। मेरा संघों के लिए सबसे सरल तरीका docs X terms की सह-घटना मैट्रिक्स का निर्माण और शर्तों है कि सबसे अधिक बार एक ही दस्तावेज में पाए जाते हैं मिल रहा है। मेरी पिछली परियोजनाओं में मैं यात्रा से Lucene में सीधे लागू किया TermDocs से अधिक (मैं IndexReader.termDocs(Term) को फोन करके यह मिल गया)। लेकिन मैं सोलर में कुछ भी नहीं देख सकता।सोलर में टर्म एसोसिएशन खनन को लागू करने का सबसे आसान तरीका क्या है?

तो, मेरी जरूरतों हैं:

  1. सबसे संबद्ध शब्द विशेष क्षेत्र के भीतर प्राप्त करने के लिए।
  2. अवधि, कि निर्दिष्ट एक विशेष क्षेत्र के भीतर के सबसे करीब है प्राप्त करने के लिए।

मैं लूंगा दर निम्नलिखित तरीके से जवाब देता है:

  1. आदर्श रूप में मैं Solr के घटक, कि है, संबद्ध शब्द सीधे प्राप्त करने के लिए कुछ है कि सीधे निर्दिष्ट आवश्यकताओं को भी शामिल प्राप्त करना चाहते हैं।
  2. यदि यह संभव नहीं है, मैं जिस तरह से निर्दिष्ट क्षेत्र के लिए सह-घटना मैट्रिक्स जानकारी प्राप्त करने के लिए मांग कर रहा हूँ।
  3. यदि यह एक विकल्प भी नहीं है, मैं 1 के लिए सबसे सरल तरीका जानना चाहते हैं) सभी शर्तों मिलता है और 2) मिल आईडी (संख्या) दस्तावेजों की इन शर्तों में होते हैं।
+0

मैं विषय googled और मैं इस सवाल का जवाब अपने आप का इंतजार कर रहा हूँ। बीटीडब्ल्यू, सोलर की क्लस्टरिंग क्षमताओं को "अर्थात् संबंधित परिणामों/दस्तावेजों को एक साथ समूहबद्ध करने के तरीके के रूप में वर्णित किया गया है"। पर्याप्त नहीं है, है ना? – aitchnyu

+0

क्लस्टरिंग एक अलग बात है। सबसे पहले, यह दस्तावेजों के साथ काम करता है, नियम नहीं, इसलिए आप शब्दों को क्लस्टर नहीं कर सकते हैं (कम से कम मैं क्लस्टरिंग के मामले में कोई समझ नहीं देख सकता और सौर के साथ ऐसा करने का आसान तरीका नहीं जानता)। हालांकि ऐसा लगता है कि विपरीत चीज संभव है: आप दस्तावेज़ों पर क्लस्टरिंग करने के लिए शर्तों पर संघ खनन का उपयोग कर सकते हैं। – ffriend

उत्तर

2

वहाँ अभी भी मेरे सवालों का कोई जवाब नहीं है के बाद से, मैं अपने खुद के विचारों को लिख सकते हैं और यह स्वीकार करना होगा। फिर भी, अगर कोई बेहतर समाधान का प्रस्ताव करता है, तो मैं इसके बजाय खुशी से इसे स्वीकार करूंगा।

मैं सह-घटना मैट्रिक्स के साथ जाऊंगा, क्योंकि यह एसोसिएशन खनन का सबसे प्रमुख हिस्सा है। आम तौर पर, सोलर इस मैट्रिक्स को किसी भी तरह से बनाने के लिए सभी आवश्यक कार्यों को प्रदान करता है, हालांकि वे ल्यूसीन के साथ सीधे पहुंच के रूप में कुशल नहीं हैं। मैट्रिक्स का निर्माण करने के लिए हम की जरूरत है:

  1. सभी नियम या कम से कम सबसे लगातार लोगों, क्योंकि दुर्लभ मामले स्वभाविक रूप से संघ खनन का परिणाम प्रभावित नहीं करेगा।
  2. दस्तावेज़ जहां ये शब्द, कम से कम शीर्ष दस्तावेज़ होते हैं।

इन दोनों कार्यों को मानक सौर घटकों के साथ आसानी से किया जा सकता है।

शर्तों TermsComponent प्राप्त करने के लिए या faceted search इस्तेमाल किया जा सकता है। हम केवल शीर्ष शर्तों (डिफ़ॉल्ट रूप से) या सभी शर्तों को प्राप्त कर सकते हैं (लेने के लिए अधिकतम संख्या निर्धारित करके, विवरण के लिए विशेष सुविधा के दस्तावेज देखें)।

विचाराधीन पद के साथ हो रही दस्तावेजों बस इस शब्द पर खोज कर रहा है। यहां कमजोर बिंदु यह है कि हमें प्रति शब्द 1 अनुरोध की आवश्यकता है, और हजारों शर्तें हो सकती हैं। एक और कमजोर बिंदु यह है कि न तो सरल, न ही पहचाना गया खोज पाया गया दस्तावेज़ में वर्तमान शब्द की घटनाओं की गणना के बारे में जानकारी प्रदान नहीं करता है।

इस के बाद, यह सह-घटना मैट्रिक्स का निर्माण करने के लिए आसान है। मेरे सहयोग के लिए अन्य सॉफ्टवेयर जैसे Weka का उपयोग करना संभव है या कहें, Apriori algorithm का अपना कार्यान्वयन लिखें।

+0

क्या सोलर के नवीनतम संस्करण लागू करने के लिए अतिरिक्त विकल्प की अनुमति देते हैं? – Saar

3

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

मैं Solr के लिए किसी भी एलएसए घटकों के पता नहीं है।

+0

आपके उत्तर के लिए धन्यवाद, लेकिन वास्तव में मुझे एलएसए की आवश्यकता नहीं है - मैंने यह दर्शाने के लिए उल्लेख किया कि यह विषय काफी लोकप्रिय है और यह अजीब बात है कि सोलर को अभी भी ऐसे कार्यों के लिए कोई समर्थन नहीं है। जैसा कि मैंने उल्लेख किया है, मेरे पास पहले से ही ल्यूसीन के साथ संघों को पुनः प्राप्त करने के लिए कोड है, इसलिए मुझे सोलर के साथ इसे कैसे करना है, इस बारे में दिलचस्पी है। – ffriend

+0

@ffriend: मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। सोलर में ल्यूसीन के समान इंडेक्स प्रारूप होता है, इसलिए ल्यूसीन के लिए काम करने वाला कोई भी कोड सोलर के लिए काम करेगा। – Xodarap

+0

बेशक मुझे पता है कि सोलर आंतरिक रूप से ल्यूसीन का उपयोग करता है और मैं ल्यूसीन से एक ही इंडेक्स तक पहुंचने के लिए अलग-अलग टूल लिख सकता हूं और जो चाहता हूं उसे प्राप्त कर सकता हूं। लेकिन यह असुविधाजनक है: मेरे पास 2 अलग-अलग कार्यक्रम होंगे - सोलर और मेरा टूल, उन्हें अलग-अलग इंस्टॉल करें, उन्हें अलग-अलग आमंत्रित करें, आदि। मुझे जो चाहिए वह एक सॉलर कमांड या संबंधित शर्तों को ढूंढने के लिए ऐसा कुछ है। बेशक, मैं कस्टम अनुरोध हैंडलर बना सकता हूं और मुझे जो चाहिए वह ठीक हो सकता है (और वास्तव में यह है कि अगर कोई बेहतर विकल्प नहीं है तो मैं ऐसा करने जा रहा हूं), लेकिन पहले मैं जानना चाहता हूं कि इस कार्य के लिए कुछ पहले से ही है या नहीं। – ffriend

-1

आप पाया दस्तावेज़ में वर्तमान अवधि के उत्पन्न होने की गिनती प्राप्त कर सकते हैं निम्न क्वेरी में:

http://ip:port/solr/someinstance/select?defType=func&fl=termfreq(field,xxx),*&fq={!frange l=1}termfreq(field,xxx)&indent=on&q=termfreq(field,xxx)&sort=termfreq(field,xxx) desc&wt=json 
संबंधित मुद्दे