2009-09-09 15 views
5

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

+3

रूसी का पता लगाने के लिए आपको केवल उन शब्दों की तलाश करनी होगी जो केवल रूसी भाषा में उपयोग की जाती हैं। या आप सिर्फ सिरिलिक अक्षरों के लिए परीक्षण करना चाहते हैं? – Gumbo

+8

अगर ($ पाठ ~ =/वोदका /) {$ भाषा = "आरयू"; } – tunnuz

+0

@ गंबो सिर्फ सिरीलिक का पता लगाने के लिए पर्याप्त है क्योंकि फोरम अंग्रेजी में है। –

उत्तर

8

आप Cyrillic वर्ण का पता लगाने के लिए निम्न का उपयोग कर सकते (रूस में प्रयुक्त):

[\u0400-\u04FF]+ 

आप वास्तव में सिर्फ रूसी वर्ण चाहते हैं, आप पूर्वोक्त दस्तावेज़ पर एक नज़र है, जो इस्तेमाल किया सटीक रेंज शामिल ले जा सकते हैं मूल रूसी वर्णमाला के लिए जो [\u0410-\u044F] है। निस्संदेह आपको एक्सटेंशन सिरिलिक वर्णों पर भी विचार करना होगा जिन्हें विशेष रूप से रूसी में उपयोग किया जाता है - दस्तावेज़ में भी उल्लेख किया गया है।

3

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

मैं लगता है कि सबसे अच्छा तरीका है (या कम से कम इस प्रक्रिया में प्रारंभिक कदम) रूसी स्पैम का पता लगाने में सबसे अधिक इस्तेमाल किया वर्णसेट के लिए grep के लिए है:

koi8-r 
windows-1251 
iso-8859-5 

अगले कदम उस के बाद की कोशिश करना होगा क्या रहता है पर कुछ भाषा पहचान एल्गोरिदम। यदि यह एक बड़ी समस्या है, तो Google अनुवाद (जो "पता लगाता है") या जेरोक्स जैसी एक सशुल्क सेवा का उपयोग करें। ये सेवाएं आईएमओ को सर्वश्रेष्ठ भाषा पहचान प्रदान करती हैं।

+0

मैं आपके बिंदु को समझता हूं, लेकिन चूंकि यह एक अंग्रेजी मंच है, यह पता लगाने के बाद कि क्या एक पोस्ट में साइरिलिक वर्ण शामिल हैं, यह निर्धारित करने के लिए पर्याप्त हो सकता है कि यह स्पैम है। –

+0

हमम, मैं * सोच रहा था कि मूल पोस्टर ईमेल स्पैम के बारे में बात कर रहा था ... यदि ऐसा नहीं है, और स्पैम साइट के माध्यम से दर्ज किया जा रहा है (उदाहरण के लिए एक मंच पर) तो मैं आपसे सहमत हूं कि आप क्या हैं कह रही है। –

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