साहित्यिक चोरी खोज प्रणाली

प्रस्तावना


पुश्किन
एक समय मैं हर तरह के अजीब काम के लिए भाग्यशाली था। उदाहरण के लिए, मुझे लगभग एक आराधनालय में एक व्यवस्थापक के रूप में नौकरी मिली। केवल एक कूबड़ ने मुझे रोक दिया कि वे अंतिम गोई के रूप में मुझे शनिवार को वहां काम करने के लिए मजबूर करेंगे।

एक अन्य विकल्प भी उत्सुक था। कंपनी ने अमेरिकी छात्रों के लिए निबंध और शब्द पत्रों की रचना की, जिन्हें स्वयं स्क्रैप में लिखना था। बाद में, मुझे पता चला कि यह एक काफी व्यापक और लाभदायक व्यवसाय है, जो यहां तक ​​कि अपने स्वयं के नाम - "पेपर मिल" के साथ आया था, लेकिन तुरंत एक जीवित बनाने का यह तरीका मुझे एक पूर्ण दिखावा लगता था। हालांकि, यह ध्यान दिया जाना चाहिए कि इस काम में कई दिलचस्प कार्य थे, और उनमें से - उन सबसे कठिन और चालाक जो मैंने अपने करियर में किए हैं, और जिनके बारे में मैं गर्व से बच्चों को बता सकता हूं।

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

इस मामले को कुछ हद तक भाषा द्वारा सुविधाजनक बनाया गया था - यह विशेष रूप से अंग्रेजी था, मामलों और जटिल विभक्ति रूपों के बिना; और यह इस तथ्य से बहुत जटिल था कि यह स्पष्ट नहीं था कि इस उपक्रम को किस पक्ष में लिया जाना चाहिए।

पर्ल को कार्यान्वयन भाषा के रूप में चुना गया था, जो बहुत सफल रही। किसी भी स्थिर संकलित भाषा में, उनकी कठोरता और धीमी शुरुआत के साथ, इस समस्या को बिल्कुल हल करना असंभव था। एक तैयार किए गए समाधान को फिर से लिखना संभव है, लेकिन कई परीक्षणों के माध्यम से इसे आना असंभव है। ठीक है, प्लस महान रन-इन पुस्तकालयों का एक गुच्छा।

मृत समाप्त होता है


तटबंध की ओर प्रस्थान प्रारंभ में, एक कार्य को चुनने के लिए कुछ patlate student को सौंपा गया था। उन्होंने लंबे समय तक दर्शन नहीं किया। अगर आपको इंटरनेट सर्च करने की जरूरत है, तो आपको सर्च इंजन की जरूरत है। हम वहां पूरे पाठ को रट लेते हैं, और Google यह खोजेगा कि यह कहां से आता है। फिर हमने पाया स्रोतों को पढ़ा और स्रोत पाठ के टुकड़ों के साथ उनकी तुलना करें।

बेशक, इससे कुछ नहीं हुआ।

सबसे पहले, यदि आप पूरे पाठ को Google को भेजते हैं, तो खोज करना बहुत बुरा होगा। अंत में, उनके पास वहां अनुक्रमणित किया जाता है, जिसमें आसन्न शब्दों की संख्या अनिवार्य रूप से सीमित होती है।

दूसरे, यह जल्दी से स्पष्ट हो गया कि जब वे एक ही पते से बहुत कुछ खोजते हैं तो Google को यह बिल्कुल पसंद नहीं आता है। इससे पहले, मैंने सोचा था कि वाक्यांश, "क्या आप Google में प्रतिबंधित कर दिए गए हैं?" यह ऐसा कुछ नहीं निकला। Google एक निश्चित संख्या के अनुरोधों के बाद, वास्तव में एक जटिल कैप्चा प्रदर्शित करता है।

खैर, HTML को पार्स करने का बहुत विचार बहुत सफल नहीं है - क्योंकि कार्यक्रम किसी भी समय क्रैश हो सकता है जब Google खोज परिणामों के साथ पृष्ठ के लेआउट को थोड़ा समायोजित करने का निर्णय लेता है।

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

और तीसरी बात, चरित्र-दर-वर्ण तुलनाओं का उपयोग करते हुए पाठ के टुकड़ों को ढूंढना अनुचित रूप से धीमा और पूरी तरह से अव्यावहारिक निकला। और इसके अलावा यह भी बेकार है - चूंकि केन्याई लोगों के पास ग्रंथों की नकल करने के लिए पर्याप्त नहीं था, लेकिन शब्दांकन को यहां और वहां थोड़ा बदलने के लिए।

मुझे विशेष साहित्य पढ़कर शुरुआत करनी थी। चूंकि यह कार्य मामूली था, इसलिए इसे किसी भी पाठ्यपुस्तक या किसी ठोस पुस्तक में वर्णित नहीं किया गया था। मैंने पाया कि कुछ निजी मुद्दों और कुछ चेक के शोध प्रबंध पर वैज्ञानिक लेखों का एक समूह था। काश, वह मेरे पास बहुत देर से आती - तब तक मुझे वहां बताए गए सभी तरीकों के बारे में पहले से ही पता था।

विषय से विचलित होकर, मैं मदद नहीं कर सकता, लेकिन ध्यान दें कि सक्षम पत्रिकाओं में प्रकाशित लगभग सभी वैज्ञानिक लेखों तक पहुंचना मुश्किल है और बी) काफी बेकार है। वे साइटें जहां वे संग्रहीत हैं, और जिनसे खोज इंजन पहले लिंक देता है, उन्हें हमेशा भुगतान किया जाता है और बहुत काटने - आमतौर पर प्रकाशन के लिए लगभग दस डॉलर। हालांकि, बेहतर समृद्ध, आप एक नियम के रूप में, सार्वजनिक डोमेन में एक ही लेख पा सकते हैं। यदि यह विफल हुआ, तो आप लेखक को लिखने की कोशिश कर सकते हैं, जो, एक नियम के रूप में, कृपया एक प्रति भेजने से इनकार नहीं करता है (जिससे मैं यह निष्कर्ष निकालता हूं कि लेखक खुद को वर्तमान प्रणाली से बहुत कम प्राप्त करते हैं, और आय किसी और को जाती है)।

हालांकि, आमतौर पर प्रत्येक विशेष लेख से थोड़ा व्यावहारिक लाभ होता है। उनमें, दुर्लभ अपवादों के साथ, कोई जानकारी नहीं है जिस पर आप बैठ सकते हैं और तुरंत एल्गोरिथ्म की रूपरेखा तैयार कर सकते हैं। उन्हें लागू करने के तरीके के किसी भी संकेत के बिना या तो अमूर्त विचार हैं; या गणितीय सूत्रों का एक गुच्छा, जिससे आप अपना रास्ता बनाते हैं, जिससे आप समझते हैं कि एक ही चीज़ को दो पंक्तियों में और मानव भाषा में लिखा जा सकता है; या लेखकों द्वारा किए गए प्रयोगों के परिणाम, एक ही टिप्पणी के साथ: "सब कुछ स्पष्ट नहीं है, आपको आगे जारी रखने की आवश्यकता है।" मुझे नहीं पता कि ये लेख दिखावे के लिए लिखे गए हैं, या बल्कि, किसी प्रकार के आंतरिक वैज्ञानिक अनुष्ठानों के लिए, या यदि टॉड वास्तविक विचारों को साझा करने के लिए दबाव डालता है, जो आपके स्वयं के स्टार्टअप में काफी सफलतापूर्वक उपयोग किए जा सकते हैं। किसी भी मामले में, विज्ञान का क्षरण स्पष्ट है।

वैसे, सबसे बड़ी और सबसे प्रसिद्ध साहित्यिक चोरी साइट को टर्निटिन कहा जाता है। यह इस क्षेत्र में एक व्यावहारिक एकाधिकार है। उनका आंतरिक कार्य सैन्य अड्डे से अधिक खराब नहीं है - मुझे एक भी लेख नहीं मिला, एक छोटा नोट भी नहीं, कम से कम बहुत सामान्य तरीके से बता रहा है जिसके बारे में एल्गोरिदम का उपयोग किया जाता है। एक पूर्ण रहस्य।

हालांकि, गीतों से लेकर मृत अंत तक, इस बार मेरे खुद के लिए।

डॉक्यूमेंट फ़िंगरप्रिंटिंग वाले विचार से कोई फ़र्क नहीं पड़ा। सिद्धांत रूप में, यह बहुत अच्छा लग रहा था - इंटरनेट से डाउनलोड किए गए प्रत्येक दस्तावेज़ के लिए, इसका फिंगरप्रिंट माना जाता है - किसी प्रकार की लंबी संख्या, किसी तरह सामग्री को दर्शाती है। यह मान लिया गया था कि एक डेटाबेस स्थापित किया जाएगा जिसमें दस्तावेजों के बजाय स्वयं यूआरएल और उंगलियों के निशान संग्रहीत किए जाएंगे, और फिर संदिग्धों को तुरंत खोजने के लिए फिंगरप्रिंट डेटाबेस के साथ स्रोत पाठ की तुलना करना पर्याप्त होगा। यह काम नहीं करता है - छोटे प्रिंट, तुलनात्मक रूप से बदतर, और जब वे स्रोत की आधी लंबाई तक पहुंचते हैं, तो उन्हें संग्रहीत करने का कोई मतलब नहीं है। साथ ही, वे परिवर्तन जो लेखकों को पहचानने में धोखा देते हैं। ठीक है, प्लस इंटरनेट की बड़ी मात्रा - डेटा के विशाल आकार के कारण सबसे छोटी प्रिंट भी जल्दी से बोझ बन जाती है।

पार्स और सामान्य करें


लकड़हारा सबसे पहले, यह चरण सामान्य और निर्बाध लगता है - ठीक है, यह स्पष्ट है कि इनपुट में स्पष्ट रूप से एमएस वर्ड प्रारूप में पाठ होगा, न कि एक पाठ फ़ाइल; इसे शब्दों और शब्दों में तोड़-मरोड़ कर पेश किया जाना चाहिए। वास्तव में, सत्यापन की गुणवत्ता में सुधार का एक बहुत बड़ा स्रोत है, जो किसी भी मुश्किल एल्गोरिदम से बहुत आगे है। यह किताबों की मान्यता के साथ पसंद है - यदि मूल कुटिल स्कैन की गई है और स्याही के साथ धब्बा है, तो कोई और चाल इसे ठीक नहीं करेगी।

वैसे, पार्सिंग और सामान्यीकरण दोनों की आवश्यकता न केवल स्रोत पाठ के लिए है, बल्कि इंटरनेट पर पाए जाने वाले सभी लिंक के लिए भी है, इसलिए गुणवत्ता के अलावा, यहां गति की भी आवश्यकता है।

इसलिए, हमें एक सामान्य प्रारूप में एक दस्तावेज़ मिला। उनमें से अधिकांश को पार्स करना आसान है - उदाहरण के लिए, HTML का उपयोग करके HTML पूरी तरह से पठनीय है :: पार्सर , पीडीएफ और पीएस के सभी प्रकारों को pstotext जैसे बाहरी प्रोग्राम को कॉल करके संसाधित किया जा सकता है। OpenOffice दस्तावेजों को पार्स करना एक खुशी है, यदि आप विकृतियों का आनंद लेते हैं, तो आप XSLT को भी खराब कर सकते हैं। केवल गड्डी वर्ड समग्र चित्र को बिगाड़ देता है - एक अधिक कमीने पाठ प्रारूप को खोजना असंभव है: अंदर किसी भी संरचना को पार्स और रहित करने के लिए नारकीय रूप से जटिल। विवरण के लिए, मैं अपने पिछले लेख का संदर्भ देता हूं। अगर मेरी इच्छा होती, तो मैं इसे कभी अलग नहीं करता, लेकिन इसे अन्य सभी प्रारूपों के मुकाबले बहुत अधिक वितरित किया जाता है। या तो यह कार्रवाई में ग्रेशम का नियम है, या दुनिया की बुराई की चाल है। अगर ईश्वर सर्वगुण संपन्न है, तो हर कोई वर्ड फॉर्मेट में क्यों लिख रहा है?

पार्सिंग की प्रक्रिया में, यदि आपको एक सामान्य प्रारूप मिलता है, तो आप पाठ से सभी प्रकार की उपयोगी चीजें सीख सकते हैं: उदाहरण के लिए, किसी दस्तावेज़ की सामग्री की तालिका ढूंढें और उसे तुलना प्रक्रिया से बाहर करें (अभी भी वहाँ कुछ भी उपयोगी नहीं है)। वही तालिकाओं के साथ किया जा सकता है (तालिका कोशिकाओं में छोटी लाइनें बहुत सारी झूठी सकारात्मकताएं देती हैं)। आप अध्यायों के शीर्षकों की गणना कर सकते हैं, चित्र बाहर फेंक सकते हैं, इंटरनेट पते चिह्नित कर सकते हैं। वेब पेज के लिए, यह साइड कॉलम और फुटर्स को बाहर करने के लिए समझ में आता है यदि वे फ़ाइल में चिह्नित हैं (html5 यह अनुमति देता है)।

हां, वैसे, अभी भी अभिलेखागार हो सकते हैं जिन्हें अनपैक करने की आवश्यकता है और प्रत्येक फ़ाइल को वहां से निकाला जाना चाहिए। मुख्य बात यह है कि OOXML जैसे कुछ जटिल, पैक किए गए प्रारूप के साथ संग्रह को भ्रमित न करें।

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

परिणामी पाठ को सामान्यीकृत किया जाना चाहिए, अर्थात्, इसे एकीकृत रूप देते हुए। सबसे पहले, आपको सभी सिरिलिक और ग्रीक अक्षरों को खोजने की आवश्यकता है, वर्तनी संबंधित अंग्रेजी के समान है। चालाक लेखक जानबूझकर साहित्यिक चोरी के लिए जाँच को धोखा देने के लिए उन्हें पाठ में सम्मिलित करते हैं। लेकिन यह वहाँ नहीं था: एक समान चाल एक सौ प्रतिशत सबूत है और इस तरह के एक लेखक को गर्दन में ड्राइव करने का अवसर है।

तब सभी सामान्य संक्षिप्त रूपों को पूर्ण के साथ प्रतिस्थापित नहीं किया जा सकता है।

अब हमें सभी उच्च कलात्मक यूनिकोड वर्णों को सरल लोगों में बदलने की आवश्यकता है - हेरिंगबोन उद्धरण चिह्नों, उल्टे अल्पविराम उद्धरण चिह्नों, लंबी और आधी लंबाई वाले डैश, एपॉस्ट्रॉफ़्स, एलिप्स, साथ ही साथ lfatures ff, ffi, st और वह सब। एक पंक्ति में दो एपोस्ट्रोफ को सामान्य उद्धरण चिह्नों के साथ बदलें (किसी कारण से यह बहुत बार भर में आता है), और एक के साथ दो डैश। व्हॉट्सएप पात्रों के सभी अनुक्रम (और उनमें से एक गुच्छा भी हैं) को एक नियमित स्थान के साथ बदल दिया जाना चाहिए। पाठ से उस के बाद बाहर फेंक दो, जो सब कुछ ASCII वर्णों की श्रेणी में फिट नहीं होता है। और अंत में, सामान्य लाइन फ़ीड को छोड़कर सभी नियंत्रण वर्ण हटा दें।

अब पाठ तुलना के लिए तैयार है।

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

इसके अलावा, अंक किसी भी कटौती के बाद खड़े हो सकते हैं, जो एक वाक्य के अंत में नहीं हैं। पूरी सूची में आधा पृष्ठ लगता है - डॉ। श्री श्रीमती सुश्री इंक वॉल्यूम। et.al. पीपी । और इतने पर और आगे। और प्लस इंटरनेट लिंक: प्रोटोकॉल के शुरू में होने पर यह अच्छा है, लेकिन यह हमेशा नहीं होता है। उदाहरण के लिए, एक लेख आम तौर पर विभिन्न ऑनलाइन स्टोर के बारे में बात कर सकता है और लगातार Amazon.com का उल्लेख कर सकता है। इसलिए आपको अभी भी देश के सभी डोमेन - एक दर्जन कोर और दो सौ डोमेन जानने की आवश्यकता है।

और एक ही समय में सटीकता खो देते हैं, क्योंकि पूरी प्रक्रिया अब संभावित हो रही है। प्रत्येक विशेष बिंदु एक वाक्य का अंत हो सकता है या नहीं भी हो सकता है।

पाठ को वाक्यों में विभाजित करने का प्रारंभिक संस्करण माथे में लिखा गया था - नियमित अभिव्यक्तियों की मदद से सभी गलत बिंदु पाए गए, अन्य पात्रों द्वारा प्रतिस्थापित किया गया, पाठ को शेष लोगों द्वारा वाक्यों से पीटा गया, फिर बिंदु प्रतीक वापस आ गए।

तब मुझे शर्म महसूस हुई कि मैंने आधुनिक विज्ञान द्वारा विकसित उन्नत तरीकों का उपयोग नहीं किया, इसलिए मैंने अन्य विकल्पों का अध्ययन करना शुरू किया। जावा में एक टुकड़ा मिला, इसे भूवैज्ञानिक युग (ओह और उबाऊ, नीरस और क्रियात्मक भाषा) के एक जोड़े में नष्ट कर दिया। पायथन एनएलटीके मिला। लेकिन सबसे ज्यादा मुझे एक निश्चित डैन गिलिक (डैन गिलिक, "इम्प्रूव्ड सेंटेंस बाउंड्री डिटेक्शन") का काम पसंद आया, जिसमें उन्होंने दावा किया कि उनका तरीका बाकी सभी से बेहतर है। विधि Bayesian संभावनाओं पर आधारित थी और पूर्व प्रशिक्षण की आवश्यकता थी। जिन ग्रंथों पर मैं उन्हें प्रशिक्षित करता था, वे उत्कृष्ट थे, लेकिन दूसरों पर ... खैर, यह नहीं कि यह बहुत बुरा था, लेकिन संक्षिप्त नामों की सूची के साथ उस शर्मनाक संस्करण की तुलना में बहुत बेहतर नहीं था। मैं आखिरकार उसके पास लौट आया।

इंटरनेट खोज


सक्रिय खोज में इसलिए, अब हमारे पास पाठ है और हमें पूरे इंटरनेट पर बिखरे हुए टुकड़ों की तलाश के लिए Google को हमारे लिए काम करने की आवश्यकता है। बेशक, आप सामान्य खोज का उपयोग नहीं कर सकते, लेकिन आपको कैसे करना चाहिए? बेशक, Google एपीआई का उपयोग करना। बस एक व्यवसाय है। वहाँ की स्थिति बहुत अधिक उदार है, कार्यक्रमों के लिए एक सुविधाजनक और स्थिर इंटरफ़ेस, कोई HTML पार्सिंग नहीं। प्रति दिन अनुरोधों की संख्या, हालांकि सीमित है, लेकिन वास्तव में Google ने इसकी जांच नहीं की। यदि आप निष्पक्ष नहीं हैं, तो निश्चित रूप से, लाखों लोगों को अनुरोध भेजना।

अब एक और सवाल यह है कि पाठ को भेजने के लिए कौन से टुकड़े हैं। Google शब्दों के बीच की दूरी के बारे में कुछ जानकारी संग्रहीत करता है। जाहिर है, यह पाया गया कि 8 शब्दों की एक श्रृंखला इष्टतम परिणाम देती है। अंतिम एल्गोरिथ्म इस तरह था:



एल्गोरिथ्म ने पूरी तरह से काम किया जब तक कि Google ने पकड़ नहीं लिया और लाफ को कवर नहीं किया। एपीआई बना रहा, यहां तक ​​कि सुधार भी हुआ, लेकिन कंपनी ने इसके लिए पैसे मांगने शुरू कर दिए, और बल्कि बड़े - $ 1000 प्रति 1000 अनुरोध। मुझे विकल्पों पर गौर करना था, जिनमें से बिल्कुल दो थे - बिंग और याहु। बिंग स्वतंत्र था, लेकिन वह वह जगह थी जहां उसके गुण समाप्त हो गए थे। वह Google की तुलना में काफी खराब दिख रहा था। उत्तरार्द्ध नया ईविल कॉर्पोरेशन हो सकता है, लेकिन उनका खोज इंजन अभी भी दुनिया में सबसे अच्छा है। हालांकि, बिंग खुद से भी बदतर दिख रहा था - एपीआई के माध्यम से उसने उपयोगकर्ता इंटरफ़ेस की तुलना में डेढ़ गुना कम लिंक पाया। उसे एक घृणित आदत भी थी कि अनुरोधों का हिस्सा एक त्रुटि के साथ समाप्त हो गया और उसे फिर से दोहराया जाना था। जाहिर है, यह है कि Microsoft ने हिट के प्रवाह को कैसे विनियमित किया। इसके अलावा, सर्च बार में शब्दों की संख्या पांच तक कम करनी पड़ी, स्टॉप शब्दों को छोड़ दिया जाना चाहिए, ओवरलैपिंग केवल एक शब्द में किया जाना चाहिए।

याहु गूगल और बिंग के बीच में कहीं था - कीमत और खोज गुणवत्ता दोनों में।

इस प्रक्रिया में, एक और छोटा विचार उत्पन्न हुआ। विभाग के प्रमुख ने एक परियोजना की खोज की जिसे हर दिन पूरे इंटरनेट की सामग्री एकत्र की और इसे अमेज़ॅन पर कहीं डाल दिया। हम केवल वहां से डेटा ले सकते हैं और इसे अपने पूर्ण-पाठ डेटाबेस में अनुक्रमित कर सकते हैं, और फिर हमें इसमें क्या चाहिए इसकी तलाश करें। ठीक है, वास्तव में अपना खुद का Google लिखें, केवल एक मकड़ी के बिना। यह, जैसा कि आप कल्पना कर सकते हैं, पूरी तरह से अवास्तविक है।

स्थानीय डेटाबेस में खोजें


स्थानीय संसाधन
टर्निटिन की एक ताकत इसकी लोकप्रियता है। कई कार्यों को वहां भेजा जाता है: छात्र - अपने स्वयं के, शिक्षक - छात्र वाले, और उनका खोज आधार लगातार बढ़ रहा है। नतीजतन, वे न केवल इंटरनेट से, बल्कि पिछले साल के शोध से भी चोरी का सामान पा सकते हैं।

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

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

तुलना


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

प्रारंभ में, दस्तावेजों की तुलना के लिए, दाद के एल्गोरिथ्म का उपयोग किया गया था - ओवरलैप के साथ सामान्यीकृत पाठ के टुकड़े। प्रत्येक टुकड़े के लिए, एक निश्चित चेकसम माना जाता है, जो तब तुलना के लिए उपयोग किया जाता है। एल्गोरिथ्म लागू किया गया था और यहां तक ​​कि पहले संस्करण में भी काम किया गया था, लेकिन यह वेक्टर स्थानों में खोज एल्गोरिथ्म से भी बदतर निकला। हालांकि, खोज करते समय अप्रत्याशित रूप से दाद का विचार आया, लेकिन मैंने पहले ही इस बारे में लिखा था।

इसलिए, हम दस्तावेजों के बीच संयोग के एक निश्चित गुणांक पर विचार करते हैं। एल्गोरिथ्म खोज इंजन के समान होगा। मैं इसे एक सरल, सामूहिक फार्म तरीके से प्रस्तुत करूंगा, और वैज्ञानिक विवरण को वैज्ञानिक पुस्तक में पाया जा सकता है (मैनिंग के।, राघवन पी।, शुट्जे एच। सूचना खोज का परिचय। - विलियम्स, 2011 )। मुझे आशा है कि कुछ भी भ्रमित न करें, लेकिन यह काफी संभव है - यहां सिस्टम का सबसे कठिन हिस्सा है, और यहां तक ​​कि लगातार बदल रहा है।

इसलिए, हम दोनों लेखों से सभी शब्दों को लेते हैं, शब्द के आधार का चयन करते हैं, डबल्स को निकालते हैं और एक विशाल मैट्रिक्स का निर्माण करते हैं। स्तंभों में उसकी बहुत नींव होगी, और केवल दो लाइनें हैं - पहला पाठ और दूसरा पाठ। चौराहे पर हम एक संख्या डालते हैं - इस पाठ में एक विशेष शब्द कितनी बार हुआ है।

मॉडल काफी सरल है, इसे "शब्दों का बैग" कहा जाता है क्योंकि यह पाठ में शब्द क्रम को ध्यान में नहीं रखता है। लेकिन हमारे लिए यह सिर्फ इतना ही है, क्योंकि साहित्यकार अक्सर पाठ को सुधारते समय, लिखे हुए शब्दों को सुधारते हुए अपने शब्दों को बदल देते हैं।

भाषाई शब्दजाल में किसी शब्द की मूल बातें पर प्रकाश डालना हाइमिंग कहलाता है। मैंने इसे स्नोबॉल लाइब्रेरी का उपयोग करके संचालित किया - जल्दी और कोई समस्या नहीं। साहित्यिक चोरी की मान्यता में सुधार के लिए स्टेमिंग की आवश्यकता है - क्योंकि चालाक लेखक किसी और के पाठ को केवल फिर से लिखते नहीं हैं, लेकिन इसे कॉस्मेटिक्स में बदलते हैं, अक्सर भाषण के एक हिस्से को दूसरे में बदलते हैं।

इसलिए, हमें मूल बातें से कुछ मैट्रिक्स मिला, जो एक विशाल मल्टी-वेक्टर स्पेस का वर्णन करता है। अब हम मानते हैं कि हमारे ग्रंथ इस स्थान में दो वैक्टर हैं, और हम उनके बीच के कोण के कोसाइन (गणना के उत्पाद के माध्यम से) की गणना करते हैं। यह ग्रंथों के बीच समानता का एक उपाय होगा।

सरल, सुरुचिपूर्ण और ज्यादातर मामलों में सच है। यह केवल खराब तरीके से काम करता है अगर एक पाठ दूसरे की तुलना में बहुत बड़ा है।

प्रायोगिक तौर पर यह पाया गया कि <0.4 के समानता गुणांक वाले ग्रंथों पर विचार नहीं किया जा सकता है। हालाँकि, तब, एक-दो प्रस्तावों के बारे में समर्थन सेवा से शिकायतें नहीं मिलने के बाद, सीमा को घटाकर 0.2 कर दिया गया था, जिससे यह बेकार हो गया (और यहाँ शापित ज़िप है)।

ठीक है, कार्यान्वयन के बारे में कुछ शब्द। चूँकि आपको हर समय एक ही पाठ की तुलना करनी होती है, इसलिए इसके मूल की सूची और अग्रिम में प्रविष्टियों की संख्या प्राप्त करना समझ में आता है। इस प्रकार, मैट्रिक्स का एक चौथाई हिस्सा तैयार हो जाएगा।

वैक्टर को गुणा करने के लिए, मैंने पहली बार पीडीएल (और क्या?) का उपयोग किया था, लेकिन फिर, गति का पीछा करते हुए, मैंने देखा कि वैक्टर बहुत खराब थे, और पेरोल हैश के आधार पर अपना खुद का कार्यान्वयन लिखा था।

अब हमें वाक्यों के बीच समानता का गुणांक खोजने की जरूरत है। यहां दो विकल्प हैं, और दोनों वेक्टर अंतरिक्ष के एक ही विषय पर भिन्नताएं हैं।

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

लेकिन आप इसे और भी अधिक चालाकी से कर सकते हैं - पुस्तक से क्लासिक tf / idf एल्गोरिथ्म लागू करें, केवल दस्तावेजों के संग्रह के बजाय हमारे पास दोनों ग्रंथों से वाक्यों का एक संग्रह होगा, और दस्तावेजों के बजाय, तदनुसार, वाक्य। हम दोनों ग्रंथों के लिए सामान्य वेक्टर स्थान लेते हैं (पहले से ही प्राप्त जब हम दो ग्रंथों के बीच समानता की गणना करते हैं), वैक्टर का निर्माण करते हैं, वैक्टरों में एलएन के साथ घटनाओं की संख्या (घटनाओं / संख्याओं की संख्या) को प्रतिस्थापित करते हैं । फिर परिणाम बेहतर होगा - मौलिक रूप से नहीं, बल्कि विशेष रूप से।

यदि दो वाक्यों के बीच समानता की सीमा एक निश्चित मूल्य से अधिक है, तो हम डेटाबेस में पाए गए वाक्यों को रिकॉर्ड करते हैं, फिर साहित्यकारों की समानता को पोक करने के लिए।

और फिर भी - यदि वाक्य में केवल एक शब्द है, तो हम इसकी तुलना किसी भी चीज़ से नहीं करते हैं - यह बेकार है, एल्गोरिथ्म ऐसे बिट्स पर काम नहीं करता है।

यदि समानता गुणांक 0.6 से अधिक है, तो एक फ़्यूच्यूनेलर पर न जाएं, यह एक पैराप्रैसेड कॉपी है। यदि 0.4 से कम है, तो समानता यादृच्छिक या कोई भी नहीं है। लेकिन अंतराल में एक ग्रे जोन बनता है - यह साहित्यिक चोरी हो सकता है, या सिर्फ एक संयोग हो सकता है, जब किसी व्यक्ति की नजर में, ग्रंथों में कुछ भी सामान्य नहीं है।

फिर एक और एल्गोरिथ्म चलता है जो मैंने एक अच्छे लेख ( युहुआ ली, ज़ुहैर बन्दर, डेविड मैकलीन और जेम्स ओ'शिआ से सीखा है । "ए मेथेंस फॉर मेजरमेंट समानता और इसके अनुप्रयोग टू कन्वर्सेशनल एजेंट्स")। भारी तोपखाने, भाषाई विशेषताएं, पहले से ही शामिल हैं। एल्गोरिथ्म को अनियमित संयुग्मन रूपों, पर्यायवाची शब्द जैसे शब्दों के बीच संबंध या अतिसूक्ष्मता, साथ ही साथ एक शब्द की दुर्लभता को ध्यान में रखना चाहिए। इस सभी सामान के लिए मशीन से पढ़ने योग्य जानकारी की आवश्यकता होती है सौभाग्य से, प्रिंसटन विश्वविद्यालय के अच्छे लोग लंबे समय से वर्डनेट नामक अंग्रेजी भाषा के लिए एक विशेष शब्दावली में लगे हुए हैं । CPAN पर पढ़ने के लिए एक तैयार मॉड्यूल भी है । केवल एक चीज जो मैंने की थी वह पाठ फ़ाइलों से जानकारी को स्थानांतरित करना था जिसमें यह प्रिंसटन में MySQL तालिकाओं में संग्रहीत है, और तदनुसार मॉड्यूल को फिर से लिखा। पाठ फ़ाइलों के ढेर से पढ़ना न तो सुविधा है और न ही गति, और किसी फ़ाइल में ऑफ़सेट के रूप में लिंक को संग्रहीत करना विशेष रूप से सुरुचिपूर्ण नहीं कहा जा सकता है।


बतख के साथ बतख
हम्म ... दूसरा। और पहला कहां है? खैर, पहले के बारे में बताने के लिए कुछ नहीं है। उसने पाठ लिया और क्रमिक रूप से एल्गोरिथ्म के सभी चरणों का प्रदर्शन किया - सामान्यीकृत, खोजा, तुलना की और परिणाम लौटाया। तदनुसार, वह समानांतर में कुछ नहीं कर सकती थी और धीमी थी।

इसलिए पहले संस्करण के बाद बाकी सभी काम एक ही चीज के उद्देश्य से थे - तेज, तेज, तेज।

चूंकि लिंक प्राप्त करने और इंटरनेट से जानकारी खींचने में बिताया गया मुख्य समय, नेटवर्क तक पहुंच अनुकूलन के लिए पहला उम्मीदवार है। सीरियल एक्सेस को समानांतर डाउनलोड (LWP से एसिंक्रोनस कर्ल ) में बदल दिया गया है । काम की गति, ज़ाहिर है, कल्पनात्मक रूप से बढ़ी है। यहां तक ​​कि मॉड्यूल में ग्लिट्स 100 अनुरोधों को प्राप्त करने, 99 को निष्पादित करने और अंतिम एक पर अनिश्चित काल तक लटकाए जाने पर खुशी को बर्बाद नहीं कर सकता है।

ओएस के बाद नई प्रणाली की सामान्य वास्तुकला का मॉडल तैयार किया गया। एक नियंत्रण मॉड्यूल है जो बाल प्रक्रियाओं को लॉन्च करता है, उन्हें समय (5 मिनट) की "क्वांटम" के साथ आवंटित करता है। इस समय के दौरान, प्रक्रिया को डेटाबेस से पढ़ना चाहिए कि यह पिछली बार वहां क्या रुका था, अगली कार्रवाई करें, डेटाबेस को जारी रखने और अंत पर जानकारी लिखें। 5 मिनट में आप लिंक को डाउनलोड करने और तुलना करने के अलावा कोई भी ऑपरेशन कर सकते हैं, इसलिए यह क्रिया एक समय में भागों - 100 या 200 लिंक में विभाजित थी। पांच मिनट बाद, डिस्पैचर किसी भी तरह से निष्पादन को बाधित करेगा। समय नहीं है? आप अगली बार कोशिश करेंगे।

हालाँकि, वर्कफ़्लो खुद भी टाइमर की प्रगति की निगरानी करना चाहिए, क्योंकि हमेशा किसी न किसी वेबसाइट में चलने का जोखिम होता है जो सब कुछ लटका देता है (उदाहरण के लिए, अंग्रेजी भाषा के 100,000 शब्द ऐसी ही एक साइट पर सूचीबद्ध थे और कुछ नहीं था। कि ऊपर वर्णित एल्गोरिदम तीन दिनों के लिए समानताएं देखेंगे और शायद किसी दिन भी मिलेंगे)।

कार्य प्रक्रियाओं की संख्या को सिद्धांत रूप में बदला जा सकता है - गतिशील रूप से भी। व्यवहार में, तीन प्रक्रियाएं इष्टतम थीं।

खैर, यह स्पष्ट है कि एक MySQL डेटाबेस भी था जिसमें प्रसंस्करण और मध्यवर्ती डेटा के लिए ग्रंथों को संग्रहीत किया गया था, साथ ही अंतिम परिणाम भी। और एक वेब इंटरफेस जिस पर उपयोगकर्ता देख सकते हैं कि वहां क्या संसाधित किया जा रहा है और किस स्तर पर है।

कार्यों को प्राथमिकता दी गई ताकि अधिक महत्वपूर्ण कार्य तेजी से पूरा हो सकें। प्राथमिकता को फ़ाइल आकार के कुछ कार्य के रूप में माना जाता था (बड़ा, धीमा इसे संसाधित किया जाता है) और समय सीमा (यह जितना करीब होता है, उतनी ही तेजी से परिणामों की आवश्यकता होती है)। डिस्पैचर ने सर्वोच्च प्राथमिकता के अनुसार अगले कार्य का चयन किया, लेकिन कुछ यादृच्छिक सुधार के साथ - अन्यथा, कम-प्राथमिकता वाले कार्यों ने अपनी बारी का इंतजार नहीं किया होगा, जब तक कि अधिक उच्च प्राथमिकता वाले नहीं हैं।

तीसरा संस्करण


य क्रिववेदको! तीसरा संस्करण प्रसंस्करण एल्गोरिदम और वास्तुकला में क्रांति के संदर्भ में विकासवादी विकास का एक उत्पाद था। मुझे याद है कि मैं ठंड में किसी तरह से बाहर निकल रहा था, एक असफल तारीख से पहले, गोडोट के लिए इंतजार कर रहा था, और अमेज़ॅन सेवाओं के बारे में हाल ही में पढ़ी गई कहानी को याद किया। और वे फाइलें स्टोर करते हैं, और वे वर्चुअल मशीन बनाते हैं, और यहां तक ​​कि उनके पास तीन पत्रों की सभी प्रकार की अस्पष्ट सेवाएं हैं। फिर यह मुझ पर छा गया। मुझे सेवस्तोपोल मछलीघर में एक बार देखा गया विशालकाय झींगा याद आया। वह पत्थरों के बीच में खड़ा है, उसके पंजे को हिलाता है और पानी को छानता है। यह उसके लिए सभी प्रकार के स्वादिष्ट टुकड़ों को ले जाता है, और वह उन्हें दूर ले जाता है, पानी को बाहर निकालता है। और यदि आप एक पंक्ति में बहुत सारे ऐसे चिंराट डालते हैं, तो वे सभी बीस मिनट में वहां छानते हैं। और अगर ये क्रस्टेशियन और विभिन्न प्रकार के भी अपने स्वयं के प्रत्येक को पकड़ लेंगे, तो सामान्य रूप से - क्या संभावनाएं खुलती हैं।

आलंकारिक भाषा से तकनीकी में अनुवाद। अमेज़ॅन में एक SQS कतार सेवा है - ऐसी निरंतर पाइपलाइन जो डेटा ले जाती है। हम कई कार्यक्रम बनाते हैं जो केवल एक ही क्रिया करते हैं - कोई संदर्भ स्विच, बच्चे की प्रक्रिया और अन्य ओवरहेड लागत। “सुबह से रात तक, क्रेन पानी के साथ एक ही बाल्टी भरती है। गैस स्टोव एक ही बर्तन, केतली और पैन गरम करता है। "

कार्यान्वयन सरल और सुंदर निकला। ऊपर वर्णित एल्गोरिथ्म का प्रत्येक चरण एक अलग कार्यक्रम है। प्रत्येक की अपनी एक पंक्ति है। एक्सएमएल संदेशों को कतारों में भेजा जाता है, जहां यह कहता है कि क्या और कैसे करना है। एक और नियंत्रण कतार और एक अलग डिस्पैचर प्रोग्राम है जो आदेश की निगरानी करता है, काम की प्रगति पर डेटा को अपडेट करता है, उपयोगकर्ता को हुई समस्याओं के बारे में सूचित करता है। व्यक्तिगत कार्यक्रम डिस्पैचर को एक उत्तर भेज सकते हैं, या वे सीधे और अगली बारी में - सुविधाजनक के रूप में कर सकते हैं। यदि कोई त्रुटि होती है, तो वे इस डिस्पैचर के बारे में एक संदेश भेजते हैं, और वह पहले से ही समझता है।

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

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

इंटरनेट से डाउनलोड की गई फाइलें, ज़ाहिर है, संदेशों में नहीं भेजी गईं - दोनों असुविधाजनक और SQS में एक आकार सीमा है। इसके बजाय, वे S3 पर ढेर हो गए, और केवल लिंक संदेशों में भेजा गया था। प्रेषणकर्ता ने कार्य पूरा करने के बाद, इन सभी अस्थायी भंडारणों को साफ कर दिया।

इंटरमीडिएट डेटा (उदाहरण के लिए, हमें पढ़ने के लिए कितने लिंक की आवश्यकता है और पहले से ही कितना हो चुका है) अमेज़ॅन सरल डेटा स्टोरेज में संग्रहीत किया गया था - एक सरल लेकिन वितरित डेटाबेस। एसडीएस की भी सीमाएँ थीं जो विचार करने योग्य थीं। उदाहरण के लिए, इसने तत्काल अपडेट की गारंटी नहीं दी।

और अंत में, समाप्त परिणाम - ग्रंथों में साहित्यिक चोरी का संकेत है, मैंने MySQL डेटाबेस में नहीं, बल्कि काउचडीबी में जोड़ना शुरू किया। वैसे भी, रिलेशनल डेटाबेस में उन्हें गैर-संबंधपरक रूप से संग्रहीत किया गया था - प्रारूप डेटा में टेक्स्ट फ़ील्ड में :: डम्पर (यह JSON का एक पेर्लोव एनालॉग है)। काउचबडी शेबा की रानी के रूप में अच्छी थी, लेकिन इसमें एक दोष था, लेकिन यह घातक था। मनमाने ढंग से क्वेरी के साथ अपने डेटाबेस तक पहुंचना असंभव है - किसी भी क्वेरी इंडेक्स के लिए अग्रिम में बनाया जाना चाहिए, अर्थात, उन्हें पहले से भविष्यवाणी की जानी चाहिए। यदि कोई क्रिस्टल बॉल नहीं है, तो आपको अनुक्रमण प्रक्रिया शुरू करने की आवश्यकता है - और एक बड़े डेटाबेस के लिए यह कई घंटे (!) तक रहता है और एक ही समय में अन्य सभी अनुरोधों को निष्पादित नहीं किया जाता है। अब मैं MongoDB का उपयोग करूंगा - वहां पृष्ठभूमि अनुक्रमण है।

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

हालांकि, कठोर चाची जीवन, हमेशा की तरह, इस आइडियल में समायोजन कर चुकी है। तकनीकी पक्ष से, वास्तुकला एकदम सही थी, लेकिन आर्थिक दृष्टिकोण से यह निकला कि एसडीएस (और एस 3) का उपयोग पूरी तरह से लाभहीन है। यह बहुत महंगा है, खासकर आधार।

मुझे जल्दबाजी में मध्यवर्ती डेटा को अच्छे पुराने MySQL में स्थानांतरित करना पड़ा, और डाउनलोड किए गए दस्तावेज़ों को NFS द्वारा साझा किए गए हार्ड ड्राइव पर संग्रहीत करना पड़ा। खैर, एक ही समय में सहज स्केलिंग के बारे में भूल जाओ।

अनारक्षित योजनाएं


काम और विज्ञान की महिमा प्राकृतिक भाषा प्रसंस्करण का अध्ययन, विशेष रूप से, मैनिंग की संपूर्ण पुस्तक से , मैं इस विचार से छुटकारा नहीं पा सकता था कि वर्णित सभी विधियाँ एक विशिष्ट कार्य के लिए केवल तदर्थ चालें, चालें हैं, जो सामान्य नहीं हैं। 2001 में वापस, लेम कंप्यूटर विज्ञान से दूर था, जिसने चालीस वर्षों तक कृत्रिम बुद्धिमत्ता का आविष्कार नहीं किया था, हालांकि इस विषय पर बहुत सारी हलचलें थीं। तब उन्होंने यह अनुमान लगाया कि भविष्य में स्थिति में बदलाव नहीं होगा। मशीन को बात समझ में नहीं आई, इसलिए उसे समझा नहीं गया। दार्शनिक सही था।

साहित्यिक चोरी की खोज बिल्कुल उसी चाल की थी। खैर, मैंने एआई को जन्म देने और पाठ की मानवीय समझ की प्रतीक्षा करने की उम्मीद नहीं की, मैं इतना भोला नहीं था, लेकिन मैं अपने सिर में लंबे समय तक भटकने के लिए कम से कम समान वाक्यों को पहचानने के लिए भटक गया, केवल अलग-अलग आवाज़ों (सक्रिय और निष्क्रिय) में खड़ा था। हालाँकि, मैंने पाया कि सभी प्राकृतिक भाषा पार्सर्स बेहद जटिल, संभाव्य थे, परिणाम एक असंगत रूप में मिले, और विशाल कम्प्यूटेशनल संसाधनों की आवश्यकता थी। सामान्य तौर पर, मुझे लगता है कि विज्ञान के विकास के वर्तमान स्तर पर यह अवास्तविक है।

मानव कारक


चंद्रमा का अवलोकन सिस्टम को इस तरह से लिखा गया था कि यह पूरी तरह से स्वचालित मोड में काम करता है, इसलिए लोग इसमें कुछ भी नहीं ला सकते हैं। इसके अलावा, एक बहुत अच्छे सिस्टम एडमिनिस्ट्रेटर ने मेरे साथ काम किया, जिसकी बदौलत सभी सर्वर पूरी तरह से कॉन्फ़िगर हो गए, और विभिन्न प्रकार के डाउनटाइम को कम से कम किया गया। लेकिन आखिरकार, अभी भी उपयोगकर्ता थे - एक समर्थन सेवा। खैर, और अधिकारियों, बिल्कुल।

दोनों लंबे समय से आश्वस्त थे कि यह कंप्यूटर नहीं था जो साहित्यिक चोरी की खोज में लगा हुआ था, लेकिन वह छोटा आदमी (या पूरी भीड़) जो कंप्यूटर के अंदर बैठा था। वह लगभग एक असली की तरह है, विशेष रूप से, किसी भी विषय पर टर्म पेपर में लिखे गए सभी चीजों को पूरी तरह से समझता है, और वह साहित्यिक चोरी पाता है क्योंकि वह इंटरनेट की सभी सामग्रियों को ध्यान में रखता है। हालाँकि, जब इन छोटे लोगों ने गड़बड़ की, तो उन्होंने सभी तर्क के विपरीत, किसी कारण से नहीं, बल्कि मुझसे। एक शब्द - दार्शनिक।

मुझे यह समझाने में बहुत काम लगा कि साहित्यिक चोरी अभी भी एक ऐसे कंप्यूटर की तलाश में है जो यह नहीं समझ रहा है कि यह क्या कर रहा है। एक साल में यह अधिकारियों तक पहुंच गया, बाकी, ऐसा लगता है कि पूरी तरह से नहीं हैं।

समर्थन का एक और फैशन भी था - Google को कई ऑफ़र पेश करना और मुझे खुशी से सूचित करना कि Google को साहित्यिक चोरी मिली, लेकिन मेरी प्रणाली नहीं थी। अच्छा, मैं उससे क्या कह सकता था? जिपफ के वितरण के बारे में बताएं, बताएं कि गति और स्मृति के आकार के लिए यह समझौता करना आवश्यक था, और इस तरह के प्रत्येक समझौते का मतलब गुणवत्ता में गिरावट है? निराशाजनक। सौभाग्य से, इनमें से अधिकांश मामलों में, यह पता चला कि Google ने कुछ भुगतान की गई साइट पर सामग्री पाई, जिसकी प्रणाली में बस पहुंच नहीं थी।

एक चाल भी थी - रिपोर्ट करने के लिए कि टर्निटिन ने साहित्यिक चोरी का पता लगाया, लेकिन हमारी प्रणाली ने नहीं किया। और फिर यह समझाना असंभव था कि टर्निटिन, सबसे अधिक संभावना है, संबंधित क्षेत्र में डिप्लोमा के साथ योग्य विशेषज्ञों की एक पूरी टीम द्वारा लिखा गया था, और साइट में ही कुछ प्रकार के शांत खोज इंजन के साथ अंतरंग संबंध हैं। फिर, सौभाग्य से, साहित्यिक चोरी के अधिकांश अनपेक्षित मामलों का भुगतान साइटों से या अन्य छात्र काम से किया गया था, सामान्य तौर पर, हमारे लिए किसी भी तरह से सुलभ नहीं था।

कई महीनों के लिए मैंने एक निश्चित प्रसंस्करण समय के लिए निर्देशक की आवश्यकता को पूरा करने की कोशिश की - प्रत्येक कार्य को एक घंटे से अधिक समय तक नहीं जांचना चाहिए। यह मेरे लिए काम नहीं करता था, मैं रात को सोता नहीं था जब तक कि एक दिन उन्होंने मुझे नहीं बताया कि, संक्षेप में, वे मुझसे एक सतत गति मशीन का आविष्कार करना चाहते हैं - एक जो बढ़ते लोड के साथ शक्ति में बढ़ेगा। इस तरह की चीजें जीवन में, कार्यक्रमों की दुनिया में भी नहीं होती हैं। जब आवश्यकता में सुधार किया गया था - एक निश्चित मात्रा (50 पृष्ठों) से अधिक के प्रत्येक कार्य को एक घंटे से अधिक समय तक नहीं खोजना चाहिए, अगर उस समय कतार में कोई बड़ा शोध प्रबंध नहीं है - चीजें आसानी से चली गईं। परिस्थितियां कठोर थीं, लेकिन कम से कम सैद्धांतिक रूप से संभव थी।

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

टिप्पणीकारों के लिए शब्दों का विभाजन


गायन मोर मेरे दुखद अनुभव से पता चलता है कि हेबेरा में ऐसे कई युवा हैं, जो किसी कारण से, यह मानते हैं कि वे जन्म से तुरंत मानव जाति द्वारा आविष्कृत ज्ञान की सभी शाखाओं में पारंगत हैं। सीधे चेखव के अनुसार - "वह मेरी मुक्ति है, वह मूर्ख है, वह एक स्मार्ट है।" यदि आप ऐसे कामरेड हैं और मुझे लिखने का फैसला करते हैं कि मैं एक बेवकूफ हूं, तो मुझे कुछ भी समझ नहीं आ रहा है, मैं साधारण चीजों को नहीं समझता हूं, आदि, तो कृपया याद रखें कि मैंने जो सिस्टम विकसित किया था वह पूंछ में संचालित था और दो साल के लिए माने, 24 घंटे एक दिन। , लगभग डाउनटाइम के बिना, और ग्राहक को पैसे के कई बैग बचाए। इसलिए, ऊपर वर्णित प्रकार की टिप्पणियों को लिखते समय, कृपया तुरंत आपके द्वारा विकसित प्रणाली की समान विशेषताओं को इंगित करें। ठीक है, ताकि प्रमुख प्रश्नों के बिना, आपकी प्रतिभा तुरंत ध्यान देने योग्य हो।

Source: https://habr.com/ru/post/In199190/


All Articles