/ / वेबसाइट सामग्री भाषा निर्धारित करें - भाषा-अज्ञेय

वेबसाइट सामग्री भाषा का निर्धारण-भाषा-नास्तिक

मेरे एक आवेदन के लिए मुझे वेबसाइटों की सामग्री को निर्धारित करके उसकी भाषा निर्धारित करनी होगी।

मैं एक भाषा का निर्धारण स्क्रिप्ट के बारे में आपकी राय जानना चाहूंगा। आप किन तरीकों का इस्तेमाल करेंगे? कौन सी स्क्रिप्टिंग लैंग्वेज? आदि।

इस समय मैंने कुछ तरीकों के साथ PHP में कुछ कोड लिखे;

  • सामग्री-भाषा मेटा टैग द्वारा भाषा का निर्धारण करें
  • शीर्षक, विवरण, कीवर्ड प्राप्त करके भाषा का निर्धारण करें और इन फिर से शब्दावलियों की तुलना करें जैसे कि अंग्रेजी, डच, जर्मन
  • HTML भाषा टैग द्वारा भाषा निर्धारित करें "
  • सभी पृष्ठ सामग्री (सरणी में अलग-अलग शब्द) प्राप्त करके भाषा का निर्धारण करें और array_search द्वारा शब्दसूची के विरुद्ध इसकी तुलना करें (उच्चतम मिलान भाषा सरणी सामग्री की भाषा है)।
  • भाषा शीर्षकों द्वारा भाषा का निर्धारण करें

ये कदम मैं अब भाषा को निर्धारित करने के लिए ले रहा हूं, वह भी ठीक इसी क्रम में। यदि एक विधि भाषा को निर्धारित करने में सफल होती है, तो मैं अगले कार्यों को छोड़ देता हूं।

यह तरीका काम कर रहा है लेकिन हमेशा सटीक नहीं होता है। क्या कोई ऐसा व्यक्ति है जो मुझे उन चीजों के बारे में अधिक बता सकता है जिन पर मैं जांच कर सकता हूं? हो सकता है कि भाषा को जांचने के लिए एक और तरीका हो (मैं "एस का उपयोग नहीं करना चाहता")।

(अंत में मुझे इन भाषाओं को एक MySql db पर सेट करने की आवश्यकता है)।

कुछ सुझाव सुनने के लिए आगे देख रहे हैं!

अग्रिम में धन्यवाद।

छेद

उत्तर:

जवाब के लिए 0 № 1

यह निर्भर करता है जब तक आपका पाठ है ..

सबसे पहले सभी html को पार्स करें और केवल टेक्स्ट को निकालें।

यदि यह लंबा है तो आप एक सस्ती विधि का उपयोग कर सकते हैंकेवल स्टॉपवर्ड की तलाश में। प्रत्येक भाषा के लिए स्टॉपमार्क्स की एक सूची प्राप्त करें और पता लगाएं कि उनमें से कितने आपके पाठ में हैं। आप NLTK कॉर्पस (अजगर) में स्टॉपवार्ड की एक अच्छी सूची प्राप्त कर सकते हैं और वाक्यों और शब्दों को टोकन देने के लिए कुछ अच्छे कार्यों का लाभ उठा सकते हैं।

import nltk

ENGLISH_STOPWORDS = set(nltk.corpus.stopwords.words("english"))
NON_ENGLISH_STOPWORDS = set(nltk.corpus.stopwords.words()) - ENGLISH_STOPWORDS

STOPWORDS_DICT = {lang: set(nltk.corpus.stopwords.words(lang)) for lang in
nltk.corpus.stopwords.fileids()}

def get_language(text):
words = set(nltk.wordpunct_tokenize(text.lower()))
return max(((lang, len(words & stopwords)) for lang, stopwords in STOPWORDS_DICT.items()),
key = lambda x: x[1])[0]
lang = get_language("This is my test text")

पर अधिक स्पष्टीकरण http://www.algorithm.co.il/blogs/programming/python/cheap-language-detection-nltk/

यदि आप python + nltk don से गुज़रना चाहते हैं तो स्थापित करने के बाद nltk corpus डाउनलोड करना न भूलें।

import nltk
nltk.download()