दिलचस्प पोस्ट
चिकना जीपीएस डेटा अपनी खुद की आयात किए बिना सिस्टम ध्वनि बजाना Python शब्दकोश धागा सुरक्षित है? इस बूलियन को एक बयान में कैसे उपयोग करें? आप फ्लोटिंग प्वाइंट नंबर के EXACT मान को कैसे प्रिंट करते हैं? माता-पिता और बच्चे की स्थिति तय की गई, अभिभावक अतिप्रवाह: छिपा हुआ बग किसी अन्य पैरामीटर को स्वीकार करने के लिए जावास्क्रिप्ट के array.sort () विधि का विस्तार करने का कोई भी तरीका? सेवाओं के बीच अंतर क्या है। AddTransient, service.AddScope और सेवा। Asp.Net कोर 1 में AddingStonleton तरीकों? ड्राइव में उपयोगकर्ता डिस्कनेक्ट करने वाला एप्लिकेशन फ़ाइल दायरे के अंतर्गत डेटा खो देता है यादृच्छिक रंग जनरेटर स्प्रिंग एमवीसी – स्प्रिंग नियंत्रक के नक्शे में सभी अनुरोध पैरामीटर कैसे प्राप्त करें? स्ट्रिंग के पहले अक्षर को प्राप्त करना और निकालना कैसे चर बहस एक और विधि से पारित करने के लिए? कैसे पूर्णांक विभाजन के परिणाम को गोल करने के लिए? जावास्क्रिप्ट प्रारूप दिनांक / समय

पायथन – क्या मैं यूनिकोड स्ट्रिंग भाषा कोड का पता लगा सकता हूँ?

मुझे ऐसी स्थिति का सामना करना पड़ रहा है जहां मैं पाठ की एक स्ट्रिंग पढ़ रहा हूं और मुझे भाषा कोड (एन, डी, एफआर, एसपी, आदि) का पता लगाना है। क्या अजगर में ऐसा करने का एक आसान तरीका है? धन्यवाद।

Solutions Collecting From Web of "पायथन – क्या मैं यूनिकोड स्ट्रिंग भाषा कोड का पता लगा सकता हूँ?"

यदि आपको उपयोगकर्ता की प्रतिक्रिया के जवाब में भाषा का पता लगाना है, तो आप Google AJAX भाषा एपीआई का उपयोग कर सकते हैं:

#!/usr/bin/env python import json import urllib, urllib2 def detect_language(text, userip=None, referrer="http://stackoverflow.com/q/4545977/4279", api_key=None): query = {'q': text.encode('utf-8') if isinstance(text, unicode) else text} if userip: query.update(userip=userip) if api_key: query.update(key=api_key) url = 'https://ajax.googleapis.com/ajax/services/language/detect?v=1.0&%s'%( urllib.urlencode(query)) request = urllib2.Request(url, None, headers=dict(Referer=referrer)) d = json.load(urllib2.urlopen(request)) if d['responseStatus'] != 200 or u'error' in d['responseData']: raise IOError(d) return d['responseData']['language'] print detect_language("Python - can I detect unicode string language code?") 

उत्पादन

 en 

Google अनुवाद एपीआई v2

डिफ़ॉल्ट सीमा 100000 वर्ण / दिन (एक समय में 5000 से अधिक नहीं)

 #!/usr/bin/env python # -*- coding: utf-8 -*- import json import urllib, urllib2 from operator import itemgetter def detect_language_v2(chunks, api_key): """ chunks: either string or sequence of strings Return list of corresponding language codes """ if isinstance(chunks, basestring): chunks = [chunks] url = 'https://www.googleapis.com/language/translate/v2' data = urllib.urlencode(dict( q=[t.encode('utf-8') if isinstance(t, unicode) else t for t in chunks], key=api_key, target="en"), doseq=1) # the request length MUST be < 5000 if len(data) > 5000: raise ValueError("request is too long, see " "http://code.google.com/apis/language/translate/terms.html") #NOTE: use POST to allow more than 2K characters request = urllib2.Request(url, data, headers={'X-HTTP-Method-Override': 'GET'}) d = json.load(urllib2.urlopen(request)) if u'error' in d: raise IOError(d) return map(itemgetter('detectedSourceLanguage'), d['data']['translations']) 

अब आप एक भाषा का स्पष्ट रूप से पता लगाने का अनुरोध कर सकते हैं :

 def detect_language_v2(chunks, api_key): """ chunks: either string or sequence of strings Return list of corresponding language codes """ if isinstance(chunks, basestring): chunks = [chunks] url = 'https://www.googleapis.com/language/translate/v2/detect' data = urllib.urlencode(dict( q=[t.encode('utf-8') if isinstance(t, unicode) else t for t in chunks], key=api_key), doseq=True) # the request length MUST be < 5000 if len(data) > 5000: raise ValueError("request is too long, see " "http://code.google.com/apis/language/translate/terms.html") #NOTE: use POST to allow more than 2K characters request = urllib2.Request(url, data, headers={'X-HTTP-Method-Override': 'GET'}) d = json.load(urllib2.urlopen(request)) return [sorted(L, key=itemgetter('confidence'))[-1]['language'] for L in d['data']['detections']] 

उदाहरण:

 print detect_language_v2( ["Python - can I detect unicode string language code?", u"матрёшка", u"打水"], api_key=open('api_key.txt').read().strip()) 

उत्पादन

 [u'en', u'ru', u'zh-CN'] 

अनुमान-भाषा पर नज़र डालें:

यूनिकोड (यूटीएफ -8) पाठ की प्राकृतिक भाषा को निर्धारित करने का प्रयास

लेकिन जैसा कि नाम कहता है, यह भाषा का अनुमान लगाता है। आप 100% सही परिणाम की उम्मीद नहीं कर सकते।

विचारों के लिए पायथन का प्रयोग करके प्राकृतिक भाषा टूलकिट और स्वचालित भाषा पहचान देखें ।

मैं जानना चाहूंगा कि क्या बेयसियन फ़िल्टर भाषा को सही कह सकता है लेकिन मैं अभी अवधारणा का सबूत नहीं लिख सकता हूं।

मेरे मामले में मुझे केवल दो भाषाओं को निर्धारित करने की ज़रूरत है, इसलिए मैं सिर्फ पहले अक्षर की जांच करता हूं:

 import unicodedata def is_greek(term): return 'GREEK' in unicodedata.name(term.strip()[0]) def is_hebrew(term): return 'HEBREW' in unicodedata.name(term.strip()[0]) 

यहां एक उपयोगी लेख से पता चलता है कि अजगर में भाषा का पता लगाने के लिए सीएलडी नामक इस खुले स्रोत का सबसे अच्छा शर्त है।

लेख 3 समाधानों के बीच की गति और सटीकता की तुलना दर्शाता है:

  1. भाषा-पहचान या इसके अजगर पोर्ट लांगाडेट
  2. टीका
  3. क्रोमियम भाषा जांच (सीएलडी)

मैंने अपना समय langdetect साथ langdetect अब मैं langdetect स्विच कर रहा हूं जो langdetect तुलना में 16x तेज है और 98.8% शुद्धता है

Universal Encoding Detector को फ़ायरफ़ॉक्स से पायथन के chardet मॉड्यूल के एक पोर्ट का प्रयास करें।

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