2010-11-14 18 views
6

मुझे विकोनियन एपीआई का उपयोग करके चयनित शब्द का अर्थ प्राप्त होगा। सामग्री etympology बिना पुनः प्राप्त डेटा एक ही होना चाहिए "के रूप में दिन का शब्द" में प्रस्तुत किया है, केवल बुनियादी अर्थ, पर्यायवाची आदि .. उदाहरण के लिए विकोनियन एपीआई - शब्दों का अर्थ

"postiche n सिर पर पहना झूठी बालों की किसी भी वस्तु या चेहरे, जैसे कि झूठी दाढ़ी या विग। "

मैंने प्रलेखन का उपयोग करने की कोशिश की लेकिन मुझे इसी तरह का उदाहरण मिल सकता है, क्या कोई इस समस्या से मदद कर सकता है?

+0

मुझे विश्वास है कि होम पेज पर "दिन का शब्द" बॉक्स की सामग्री इसे संक्षिप्त रखने के लिए मैन्युअल रूप से संपादित की जाती है। शब्द लेख खोलते समय आप उस शब्द के लिए और अधिक अर्थ देखेंगे। –

+1

यह भी देखें http://stackoverflow.com/questions/3364279/has-anyone-parsed-wiktionary – pfctdayelise

उत्तर

13

हालांकि मीडियाविकि एक API (api.php), यह अपने उद्देश्यों के लिए सबसे आसान हो सकता है अगर आप सिर्फ एक संशोधन (एक्सएमएल, JSON, आदि में लिपटे नहीं के स्रोत कोड प्राप्त करना चाहते हैं तो बस index.php को action=raw पैरामीटर का उपयोग करना पड़ता है , एपीआई के विपरीत)।

उदाहरण के लिए, इस 14 नवंबर के लिए दिन पेज के कच्चे शब्द है:

http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw

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

http://en.wiktionary.org/w/index.php?title=overflow&action=raw

वहाँ है एपीआई में एक "XML पार्स पेड़ उत्पन्न" विकल्प है, लेकिन यह प्रस्तुतिकरण के बहुत नष्ट नहीं होती है एक्सएमएल में स्वरूपण। बस अपने आप के लिए देखें:

http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm

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

1

ठीक है, मैं हार मानता हूं।

वहाँ some filesPywikipediabot में विक्षनरी से संबंधित हैं और मैं कोड को देखते हुए, यह देखने के लिए की तरह आप यह आप के लिए अर्थ/परिभाषा क्षेत्रों पार्स करने के लिए प्राप्त करने में सक्षम होना चाहिए है।

हालांकि पिछले एक घंटे में मुझे अन्यथा आश्वस्त किया गया है। कोड अच्छी तरह से लिखा नहीं है और मुझे आश्चर्य है कि यह कभी काम किया है।

तो मैं idealmachine's answer पर स्थगित हूं, लेकिन मैंने सोचा कि मैं इसे किसी और को एक ही गलतियों से बचाने के लिए पोस्ट करूंगा। :)

0

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

पहली चेतावनी यह है कि प्रत्येक विकिपीडिया ने अपना प्रारूप विकसित किया है, लेकिन मुझे लगता है कि आप केवल अंग्रेजी विकिपीडिया में रूचि रखते हैं। एक सस्ता चाल कई टूल का उपयोग पहली पंक्ति को प्राप्त करने के लिए होती है जो '#' चरित्र से शुरू होती है। यह आमतौर पर पहले homonym की पहली भावना की परिभाषा का पाठ होगा।

एक और चेतावनी यह है कि प्रत्येक विकिपीडिया कई विकी टेम्पलेट्स का उपयोग करता है ताकि यदि आप कच्चे पाठ को देख रहे हों तो आपको इनमें से बहुत कुछ दिखाई देगा। इन टेम्पलेट्स को विश्वसनीय रूप से विस्तारित करने का एकमात्र तरीका एपीआई को action=parse के साथ कॉल करना है।