2009-07-22 8 views
9

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

अजगर, एक समारोह की तरह:

def LanguageUsed (url): 
    #stuff 

जो एक भाषा विनिर्देशक रिटर्न (अंग्रेजी के लिए जैसे 'en', जापानी के लिए 'जेपी', आदि ...)

परिणाम का सारांश: मेरे पास पाइथन में code from the PyPi for oice.langdet का उपयोग कर एक उचित समाधान है। यह अंग्रेजी बनाम गैर-अंग्रेजी के भेदभाव में एक सभ्य नौकरी करता है, जो इस समय मुझे आवश्यक है। ध्यान दें कि आपको पाइथन urllib का उपयोग कर एचटीएमएल लाने के लिए है। इसके अलावा, oice.langdet जीपीएल लाइसेंस है।

पाइथन में ट्रिग्राम का उपयोग करके एक और सामान्य समाधान के लिए जैसा कि अन्य ने सुझाव दिया है, यह Python Cookbook Recipe from ActiveState देखें।

Google प्राकृतिक भाषा पहचान API बहुत अच्छी तरह से काम करता है (यदि मैंने देखा है तो सबसे अच्छा नहीं है)। हालांकि, यह जावास्क्रिप्ट है और उनके TOS इसके उपयोग को स्वचालित करने से मना कर देता है।

उत्तर

8

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

1

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

0

कोई सामान्य विधि नहीं है जो पूरी तरह से यूआरएल पर काम करेगी। आप कुछ विचार प्राप्त करने के लिए top-level domain देख सकते हैं, और यूआरएल के उन हिस्सों की तलाश कर सकते हैं जो एक भाषा का संकेत हो सकते हैं (जैसे "एन" या "एसएस" दो स्लेश के बीच), और कुछ भी अज्ञात अंग्रेजी में है, लेकिन यह ' एक सही समाधान नहीं है।

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

3

स्वयं URL उस भाषा को इंगित करेगा के बारे में कुछ भी नहीं है।

एक विकल्प सामग्री के आधार पर भाषा की पहचान करने के लिए natural language toolkit का उपयोग करना होगा, लेकिन यदि आप इसे एनएलपी भाग के काम को प्राप्त कर सकते हैं, तो यह बहुत धीमा हो जाएगा। इसके अलावा, यह भरोसेमंद नहीं हो सकता है। याद रखें, सबसे उपयोगकर्ता एजेंटों की तरह

Accept-Language: en-US 
प्रत्येक अनुरोध के साथ

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

आप GeoIP का उपयोग कर भाषा के लिए प्रॉक्सी के रूप में सर्वर स्थान (यानी सर्वर कौन सा देश है) का उपयोग कर सकते हैं।यह स्पष्ट रूप से सही नहीं है, लेकिन यह टीएलडी का उपयोग करने से काफी बेहतर है।

+0

जियोलोकेशन पूरी तरह से बेकार है। दुनिया में बहुत सारे स्थान हैं जहां कई भाषाएं सह-अस्तित्व में हैं। और वेबसाइटों में कई भाषाओं को भी शामिल किया जा सकता है –

+0

मैंने कहा था कि यह टीएलडी से बेहतर है, जो कुछ लोग सुझाव दे रहे हैं, और मैंने कई भाषाओं के मुद्दे को संबोधित किया। – tghw

3

आप ngram आधारित पहचान का प्रयास करना चाह सकते हैं।

TextCat DEMO (एलजीपीएल) बहुत अच्छी तरह से काम करता है (लगभग 70 भाषाओं को पहचानता है)। उसी कॉर्पस का उपयोग करके Thomas Manginhere द्वारा प्रदान किया गया एक अजगर पोर्ट है।

संपादित करें: टेक्स्टकैट competitors page कुछ दिलचस्प लिंक भी प्रदान करता है।

EDIT2: मुझे आश्चर्य है अगर http://www.mnogosearch.org/guesser/ के लिए एक अजगर आवरण बनाने मुश्किल होगा ...

संबंधित मुद्दे