यह हल करने के लिए काफी कठिन समस्या है और आप यह निर्धारित करता है, तो नियमित अभिव्यक्ति काम करेंगे की जरूरत है (जहां m
शब्दों की संख्या है और n
पाठ आप खोज रहे हैं के आकार है) आपके लिए और आप एम्बेडिंग को कैसे संभालेंगे (जब आप वास्तविक एफ-शब्द को छोड़कर फ्रैक्सेफ़ेस जैसे बदनामी के लिए एक शब्दकोष शब्द जोड़ते हैं)।
नियमित अभिव्यक्तियों की आम तौर पर सीमा होती है कि वे कितने समय तक हो सकते हैं और यह आमतौर पर आपको अपने सभी शब्दों के लिए एकल रेगेक्स का उपयोग करने से रोकता है। एक स्ट्रिंग के खिलाफ कई नियमित अभिव्यक्तियों को निष्पादित करना वास्तव में धीमा है, इस पर निर्भर करता है कि आपको किस प्रदर्शन की आवश्यकता है और आपकी ब्लैकलिस्ट कितनी बड़ी हो। हम प्रारंभिक रूप से नियमित अभिव्यक्ति प्रणाली के रूप में CleanSpeak को लागू करते हैं, लेकिन यह स्केल नहीं किया गया और हम इसे एक अलग तंत्र का उपयोग करके पुनः लिखते हैं।
आपको वाक्यांशों, विराम चिह्न, रिक्त स्थान, लीट-बोल और अन्य भाषाओं पर भी विचार करने की आवश्यकता है। ये सभी एक समाधान के रूप में नियमित अभिव्यक्ति कम आकर्षक बनाते हैं। यहाँ कुछ शब्द का उपयोग कर नमस्ते उदाहरण हैं (मान यह इस अभ्यास के लिए गालियां बकने की क्रिया है):
- सूची आइटम
- हैलो
- हैलो
- h_e_l_l_o
- | - | एलो
- h3llo
- "हैलो वहाँ" (इस वाक्यांश में कोई भी अपवित्र शब्द नहीं हो सकता है लेकिन संयुक्त वे संयुक्त हैं)
आपको किनारे के मामलों को संभालने की भी आवश्यकता है जहां दो या दो से अधिक शब्दकोश (श्वेतसूची) शब्दों में एक दूसरे के बगल में एक बदनामी होती है।कुछ उदाहरण है कि एस शब्द शामिल:
ये स्पष्ट रूप से गालियां बकने की क्रिया नहीं हैं, लेकिन सबसे देसी और कई वाणिज्यिक समाधान इन मामलों के साथ समस्या है।
हमने पिछले 3 वर्षों में CleanSpeak द्वारा उपयोग किए गए फ़िल्टर को पूरा करने के लिए खर्च किया है ताकि यह सुनिश्चित किया जा सके कि यह इन सभी मामलों को संभालता है और हम इसे ट्विक करना जारी रखते हैं और इसे बेहतर बनाते हैं। हमने प्रदर्शन के लिए हमारे सिस्टम को पूरा करने में 8 महीने बिताए और यह प्रति सेकंड लगभग 5,000 संदेश संभाल सकता है। यह नहीं कहना है कि आप कुछ उपयोग करने योग्य नहीं बना सकते हैं, लेकिन आने वाले कई मुद्दों को संभालने के लिए तैयार रहें और एक ऐसी प्रणाली भी तैयार करें जो नियमित अभिव्यक्तियों का उपयोग न करे।
स्रोत
2011-12-01 18:15:28
इस लिंक को देखें: http://stackoverflow.com/questions/273516/how-do-you-implement-a-good-profanity-filter –
स्कन्थोरपे समस्या के लिए देखें: http: //en.wikipedia .org/wiki/Scunthorpe_problem – rossum