एक शब्द मौजूद है या नहीं, यह निर्धारित करने के लिए विक्षनरी के एपीआई का उपयोग कैसे किया जा सकता है?
एक शब्द मौजूद है या नहीं, यह निर्धारित करने के लिए विक्षनरी के एपीआई का उपयोग कैसे किया जा सकता है?
जवाबों:
एक शब्द मौजूद है या नहीं, यह जानने के लिए विक्षनरी एपीआई का उपयोग किया जा सकता है।
मौजूदा और गैर-मौजूदा पृष्ठों के उदाहरण:
http://en.wiktionary.org/w/api.php?action=query&titles=test
http://en.wiktionary.org/w/api.php?action=query&titles=testx
पहला लिंक अन्य प्रकार के प्रारूपों पर उदाहरण प्रदान करता है जो पार्स करना आसान हो सकता है।
एक छोटे से XHTML प्रारूप में शब्द के डेटा को पुनः प्राप्त करने के लिए (अस्तित्व की आवश्यकता से अधिक होना चाहिए), पृष्ठ के मुद्रण योग्य संस्करण का अनुरोध करें:
http://en.wiktionary.org/w/index.php?title=test&printable=yes
http://en.wiktionary.org/w/index.php?title=testx&printable=yes
फिर इन्हें किसी भी मानक XML पार्सर के साथ पार्स किया जा सकता है।
https://en.wiktionary.org/w/?curid=[page_id]&printable=yes
XHTML पृष्ठ का उपयोग करने के लिए पुनर्निर्देशित करें pageid
।
कुछ जाँचें हैं कि विकिपीडिया में आपके द्वारा खोजे जा रहे नाम के साथ एक पृष्ठ है:
कैविएट # 1 : अंग्रेजी विकीमेरी सहित सभी विकिपीडियाओं का लक्ष्य वास्तव में हर भाषा में हर शब्द को शामिल करना है, इसलिए यदि आप बस एपीआई कॉल से ऊपर का उपयोग करते हैं तो आपको पता चल जाएगा कि जिस शब्द के बारे में आप पूछ रहे हैं वह कम से कम एक भाषा में एक शब्द है, लेकिन जरूरी नहीं कि अंग्रेजी: http://en.wiktionary.org/w/api.php?action=query&tmarks=dicare
कैविएट # 2 : शायद एक रीडायरेक्ट एक शब्द से दूसरे शब्द में मौजूद है। यह एक वैकल्पिक वर्तनी से हो सकता है, लेकिन यह किसी प्रकार की त्रुटि से हो सकता है। ऊपर दी गई API कॉल एक रीडायरेक्ट और एक लेख के बीच अंतर नहीं करेगी: http://en.wiktionary.org/w/api.php?action=query&tmarks=profilemetry
कैविएट # 3 : अंग्रेजी विकेंशनरी सहित कुछ विकिपीडियाओं में "आम गलत वर्तनी" शामिल हैं: http://en.wiktionary.org/w/api.php?action=query&tmarks=fourty
कैविएट # 4 : कुछ विक्षनरी स्टब प्रविष्टियों को अनुमति देते हैं जिनके पास शब्द के बारे में बहुत कम या कोई जानकारी नहीं है। यह कई विकिपीडियाओं पर सामान्य हुआ करता था लेकिन अंग्रेजी विकिपीडिया पर नहीं। लेकिन ऐसा लगता है कि अब यह अंग्रेजी विकिपीडिया पर भी फैल गया है: https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (जब ठूंठ भर गया है तो इसके लिए पर्मलिंक ताकि आप अभी भी देख सकें स्टब कैसा दिखता है: https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161 )
यदि आप जो चाहते हैं, उसमें ये शामिल नहीं हैं, तो आपको खुद ही विकिटेक्स को लोड करना होगा और पार्स करना होगा, जो कि एक मामूली काम नहीं है।
&prop=info
क्वेरी में जोड़ें और redirect
विशेषता के लिए प्रतिक्रिया देखें ।
आप विकिमीडिया डेटा का एक डंप डाउनलोड कर सकते हैं । एफएक्यू में अधिक जानकारी है । आपके उद्देश्यों के लिए, परिभाषा डंप शायद xml डंप की तुलना में बेहतर विकल्प है।
इसे वास्तव में सरल रखने के लिए, इस तरह से डंप से शब्द निकालें:
bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words
यदि आप पायथन का उपयोग कर रहे हैं, तो आप सुयश बेहरा द्वारा विक्षनरीपारर का उपयोग कर सकते हैं ।
आप इसे द्वारा स्थापित कर सकते हैं
sudo pip install wiktionaryparser
उदाहरण का उपयोग:
>>> from wiktionaryparser import WiktionaryParser
>>> parser = WiktionaryParser()
>>> word = parser.fetch('test')
>>> another_word = parser.fetch('test', 'french')
>>> parser.set_default_language('french')
आप JWKTL को आज़माना चाहते हैं। मुझे इसके बारे में पता चला;)
http://en.wikipedia.org/wiki/Ubiquitous_Knowledge_Processing_Lab#Wiktionary_API
जैसा कि पहले उल्लेख किया गया है, इस दृष्टिकोण के साथ समस्या यह है कि विक्षनरी सभी भाषाओं के सभी शब्दों के बारे में जानकारी प्रदान करता है । इसलिए यह जांचने के लिए कि क्या कोई पृष्ठ विकिपीडिया एपीआई का उपयोग करके मौजूद है, काम नहीं करेगा क्योंकि गैर-अंग्रेजी शब्दों के लिए बहुत सारे पृष्ठ हैं। इसे दूर करने के लिए, आपको यह पता लगाने के लिए प्रत्येक पृष्ठ को पार्स करने की आवश्यकता है कि क्या अंग्रेजी शब्द का वर्णन करने वाला एक खंड है । पर्साइटेक्स को पार्स करना कोई मामूली काम नहीं है, हालांकि आपके मामले में यह उतना बुरा नहीं है। लगभग सभी मामलों को कवर करने के लिए आपको बस यह जांचने की ज़रूरत है कि क्या वाइकिटेक्स में English
हेडिंग है। आपके द्वारा उपयोग की जाने वाली प्रोग्रामिंग भाषा के आधार पर, आप wikitext से एएसटी के निर्माण के लिए कुछ उपकरण पा सकते हैं । यह अधिकांश मामलों को कवर करेगा, लेकिन उन सभी को नहीं क्योंकि विकिपीडिया में कुछ सामान्य गलतियाँ शामिल हैं।
एक विकल्प के रूप में, आप लिंगुआ रोबोट या कुछ इसी तरह का उपयोग करने की कोशिश कर सकते हैं । लिंगुआ रोबोट विकिपीडिया की सामग्री को पार्स करता है और इसे REST API के रूप में प्रदान करता है। गैर-रिक्त प्रतिक्रिया का मतलब है कि शब्द मौजूद है। कृपया ध्यान दें कि, विक्षनरी के विपरीत, एपीआई में स्वयं में कोई भी गलत वर्तनी शामिल नहीं है (कम से कम इस उत्तर को लिखने के समय)। कृपया यह भी ध्यान दें कि विकिपीडिया में केवल शब्द नहीं हैं, बल्कि बहु-शब्द अभिव्यक्तियाँ हैं।
यहाँ व्युत्पत्ति और उच्चारण डेटा पार्स करने के लिए एक शुरुआत है:
function parsePronunciationLine(line) {
let val
let type
line.replace(/\{\{\s*a\s*\|UK\s*\}\}\s*\{\{IPA\|\/?([^\/\|]+)\/?\|lang=en\}\}/, (_, $1) => {
val = $1
type = 'uk'
})
line.replace(/\{\{\s*a\s*\|US\s*\}\}\s*\{\{IPA\|\/?([^\/\|]+)\/?\|lang=en\}\}/, (_, $1) => {
val = $1
type = 'us'
})
line.replace(/\{\{enPR|[^\}]+\}\},?\s*\{\{IPA\|\/?([^\/\|]+)\/?\|lang=en}}/, (_, $1) => {
val = $1
type = 'us'
})
line.replace(/\{\{a|GA\}\},?\s*\{\{IPA\|\/?([^\/\|]+)\/?\|lang=en}}/, (_, $1) => {
val = $1
type = 'ga'
})
line.replace(/\{\{a|GA\}\},?.+\{\{IPA\|\/?([^\/\|]+)\/?\|lang=en}}/, (_, $1) => {
val = $1
type = 'ga'
})
// {{a|GA}} {{IPA|/ˈhæpi/|lang=en}}
// * {{a|RP}} {{IPA|/pliːz/|lang=en}}
// * {{a|GA}} {{enPR|plēz}}, {{IPA|/pliz/|[pʰliz]|lang=en}}
if (!val) return
return { val, type }
}
function parseEtymologyPiece(piece) {
let parts = piece.split('|')
parts.shift() // first one is ignored.
let ls = []
if (langs[parts[0]]) {
ls.push(parts.shift())
}
if (langs[parts[0]]) {
ls.push(parts.shift())
}
let l = ls.pop()
let t = parts.shift()
return [ l, t ]
// {{inh|en|enm|poisoun}}
// {{m|enm|poyson}}
// {{der|en|la|pōtio|pōtio, pōtiōnis|t=drink, a draught, a poisonous draught, a potion}}
// {{m|la|pōtō|t=I drink}}
// {{der|en|enm|happy||fortunate, happy}}
// {{cog|is|heppinn||lucky}}
}
अद्यतन : यहाँ एक और अधिक fleshed के साथ एक मुट्ठी है।
langs
?
langs
कुछ हजार लाइनें हैं, जो SO के लिए बहुत बड़ी हैं।
आप संशोधन एपीआई का उपयोग कर सकते हैं:
या पार्स एपीआई:
https://en.wiktionary.org/w/api.php?action=parse&page=test&prop=wikitext&formatversion=2
डॉक्स में और उदाहरण दिए गए हैं ।