एक MMO चैट के लिए Profanity फ़िल्टर


32

हम Smartfox सर्वर का उपयोग करके एक MMO विकसित कर रहे हैं। लक्षित दर्शक 7 -12 वर्ष के बच्चे हैं।

इस MMO में एक वैश्विक चैट विकल्प है।
एक टेक्स्टबॉक्स में जो भी उपयोगकर्ता प्रकार मिलते हैं, वह उपयोगकर्ताओं के बगल में प्रदर्शित होता है, जब वह हिट दर्ज करता है।

हम इस चैट से अपमानजनक भाषा / अपवित्रताओं को फ़िल्टर करना चाहेंगे।
हम चैट पर कब्जा कर सकते हैं और पाठ पढ़ सकते हैं। समस्या को अपवित्रता की सूची में ही मिल रहा है।

हमारे सवाल हैं

  1. सभी अपवित्रताओं की विस्तृत सूची कहां से मिलेगी?
  2. इन्हें छानने के लिए समान परिदृश्य में कौन सी विधि अपनाई जाती है?

17
Scunthorpe समस्या के साथ अच्छे भाग्य ।
साइक्लॉप्स

7
@yetanothercoder, मेरी बात है, फ़िल्टर करना एक कठिन समस्या है । उदाहरण के लिए, क्या आपके खेल में शनिवार को कोई घटना होगी? क्या खिलाड़ी "शनिवार" शब्द टाइप कर पाएंगे (मध्य चार अक्षरों पर ध्यान दें) उनके चैटबॉक्स में? (और पता नहीं क्यों नीचे या तो - यह एक बुरा सवाल नहीं है , लेकिन एक सरल जवाब नहीं हो सकता है)।
साइक्लोप्स

6
और यह और अधिक जटिल हो जाता है जब अधिक भाषाएं खेल में आती हैं। उदाहरण के लिए: Starcraft 2 चैट से "वेनिगर" निकालता है, जो कि "कम" के लिए सिर्फ जर्मन शब्द है ...
bummzack

4
एक और समस्या मुझे अक्सर तब होती थी जब मैं छोटा था और फ़िल्टर किए गए MMOs खेल रहा था कि वे अंग्रेजी भाषा पर आधारित हैं। इसलिए अगर मैं फ्रेंच बोलता, तो कुछ सभ्य फ्रांसीसी शब्द सेंसर हो जाते, क्योंकि वे अंग्रेजी शापों की तरह दिखते थे, और किसी भी मामले में, मैं अभी भी फ्रेंच में शाप दे सकता था, जो मैं चाहता था।
Xeon06

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

जवाबों:


46

मत करो।

फिल्टर काम नहीं करते। कम से कम, केवल फ़िल्टर काम नहीं करते। श्वेतसूची, श्वेतसूची, इससे कोई फर्क नहीं पड़ता। इनमें से कोई भी कभी भी बच्चों को एक-दूसरे को परेशान करने से नहीं रोकेगा। इस काम को करने का एकमात्र तरीका चैट को फ़िल्टर करना नहीं होगा, बल्कि वाक्यों के लिए बड़े बिल्डिंग-ब्लॉक प्रदान करना होगा। उदाहरण के लिए, एक बच्चा "क्या आप चाहते हैं ..." और "गो टू ..." और "ट्रेड ..." के विकल्प चुन सकते हैं। "गो टू ..." का चयन खेल में स्थानों की एक सूची लाएगा।

डिज़नी अपने 14 साल के श्वेतसूची परीक्षण विषय "स्टिक [अपने] लंबे गर्दन वाले जिराफ को [उनके] शराबी सफेद चलनेवाली" के रूप में तय करने के बाद अपने पैतृक "टोंटाउन" के लिए इस पद्धति पर बस गए सीधे शब्दों में कहें, तो आप दुरुपयोग को रोकने के लिए पर्याप्त शब्दों को ब्लैकलिस्ट या श्वेतसूची में नहीं कर सकते


यह सब कहा जा रहा है, अगर मैं एक बच्चे के MMO डिजाइन कर रहा था, तो मैं वास्तव में एक कड़े ब्लैकलिस्ट फ़िल्टर को लागू करूंगा, लेकिन केवल रक्षा की दूसरी पंक्ति के रूप में। आपकी रक्षा की पहली पंक्ति हमेशा मध्यस्थ और दुरुपयोग की रिपोर्ट करने की क्षमता होनी चाहिए। मैं शब्दों को ब्लैक लिस्टेड करूँगा, प्रत्येक उपयोगकर्ता को इस बात का गुप्त अंक प्राप्त होगा कि वे कितने अपवित्र होने की कोशिश कर रहे हैं।

संभावना है, कोई भी उपयोगकर्ता जो आपके फ़िल्टर को आज़माएगा और इसे पहले ट्रिगर करेगा। अधिक स्पष्ट अपवित्रता, (अस्पष्ट या पुराने लोगों के विपरीत,) या अधिक दोहराया अपवित्रता के प्रयास, उन्हें मॉडरेटरों के लिए एक वॉच सूची या किसी प्रकार की प्रतिबंध सूची में डालते हैं । इस तरह, मध्यस्थ उन उपयोगकर्ताओं पर ध्यान केंद्रित कर सकते हैं, जो अभी भी निर्दोष बच्चों की टिप्पणियों को पढ़ने में अपना समय बर्बाद करने के बजाय दूसरों को परेशान करने की कोशिश कर रहे हैं।


6
+1 सिर्फ Toontown लिंक के लिए - मैं विशेष रूप से की खिलाड़ियों के उपयोग की तरह गुप्त चैनलों लोग अपने गुप्त कोड का आदान प्रदान करने के लिए है, इसलिए वे फिल्टर बाईपास सकता है।
साइक्लॉप्स

1
यह वास्तव में दिलचस्प था मुझे लगा कि मैं खुदाई और साझा करूंगा। यदि आप मेरे उत्तर के शेष भाग को नहीं पढ़ते हैं, तो कम से कम पढ़ें। = P
dlras2

2
मेरा मानना ​​है कि ब्लिज़ार्ड इस तकनीक का उपयोग करता है (विश्व में सामान्य चैट पर पोस्ट किए गए शापों की गिनती), कम से कम मुझे पता है कि वे इस्तेमाल करते थे।
नैट

2
@ केवल व्यक्तिगत अनुभव। मुझे ऑटो-बैन कर दिया गया था। (जो एक जीएम द्वारा प्रतिबंधित किए जाने से अलग अनुभव था) कुछ गूदे मौखिक रूप से मेरे समाज में कुछ लड़कियों पर हमला कर रहे थे, और मैं उस पर चला गया। मुझे खेल से प्रतिबंधित नहीं किया गया था, बस कुछ समय के लिए / जनरल से।
नैट

2
पहले शब्द "न" के लिए +1। सर्कुलेशन क्या होता है और यही कारण है कि आप ऐसा महसूस करेंगे कि आपने meecrob का बड़ा स्टीमिंग पाइल बनाने के लिए मूल्यवान प्रोग्रामिंग संसाधनों को बर्बाद कर दिया है ! ; -ड
रैंडॉल्फ रिचर्डसन

10

करने के लिए कह रही है लोगों की प्रतिक्रिया में नहीं फिल्टर प्रदान करते हैं, मैं तर्क है कि आप करने के लिए है अपने अभीष्ट ऑडियंस के माता-पिता के संबंध में अपनी खुद की बट को कवर करने के अलावा कोई अन्य कारण के लिए, एक फिल्टर प्रदान करते हैं। बस सुनिश्चित करें कि इसे उपयोगकर्ता द्वारा अक्षम किया जा सकता है। एक अपवित्रता फ़िल्टर लागू करके (यद्यपि एक अपूर्ण और पूरी तरह से वैकल्पिक एक), आप कह सकते हैं कि आपने अपने युवा दर्शकों की संवेदनाओं की रक्षा के लिए आपसे अपेक्षित सब कुछ किया है।

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

उस समझ के साथ, कार्यान्वयन के बारे में इतनी चिंता न करें। यह मूर्खतापूर्ण होने की आवश्यकता नहीं है (जो अच्छा है, क्योंकि यह मूर्खतापूर्ण नहीं हो सकता है), लेकिन यह अपेक्षाकृत पूर्ण और जितना संभव हो उतना असहनीय होना चाहिए। यही है, आप यह सुनिश्चित करने के लिए नहीं हैं कि आप " गुप्त गलती" नहीं करते हैं।

कार्यान्वयन बेहद सरल हो सकता है - एक शब्द सूची प्राप्त करें, और सूची में पाए जाने वाले किसी भी शब्द को तारांकन या कुछ इसी तरह बदलें। केवल पूरे शब्दों को खोजने के लिए सबसे अच्छा है, साथ ही साथ।

शब्द सूची के लिए, यह आसान है: http://www.google.com/search?q=profanity+word+list

याद रखें, यह सब समावेशी होने की जरूरत नहीं है, यह सिर्फ बच्चों की सुरक्षा के लिए अपनी ओर से एक बहादुर प्रयास का प्रतिनिधि होना है।


1
+1 मेरे दृष्टिकोण के रूप में अच्छी तरह से होगा, विस्तार से शोध करने के बाद कि आपको वास्तव में एक विशिष्ट आयु रेटिंग के लिए क्या करने की आवश्यकता है।
ऑस्कर डुवॉर्न

5

मैं एक ब्लैकलिस्ट और एक श्वेतसूची के लिए अनुमति देने वाले समाधान को लागू करने का प्रयास करूंगा, जहां आप ब्लैकलिस्ट में 'योनी' और उदाहरण के लिए श्वेतसूची में 'स्कन्थोरपे' जोड़ सकते हैं।

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

इसका कारण यह है कि भाषाएँ, विशेष रूप से अंग्रेजी, लगातार विकसित होती हैं और दशकों तक अप्रभावी रहने वाली चीज़ सही संदर्भ में आक्रामक हो सकती है।

सबसे अधिक संभव शब्द प्राप्त करने की कोशिश करें और वहां से जाएं, त्वरित प्रतिक्रिया समय हो जब लोग शिकायत करते हैं और बताते हैं कि यह आमतौर पर एक चिंता का विषय है और मुझे संदेह है कि आपको कोई समस्या होगी।

यह जानना सही होगा कि अमेरिका में सेंसरशिप के लिए दिशानिर्देश क्या हैं: MBNL! (मैं कोई वकील नहीं हूँ!)


3
भाषा को विकसित करने का समाधान प्रीफ़ेन्सिटी द्वारा फ़िल्टर करना है ।
साइक्लॉप्स

@ साइकिल विजेता! xD
जोनाथन कॉनेल

4

जैसा कि मैंने टिप्पणी की, सभी आक्रामक शब्दों को फ़िल्टर करना वास्तव में कठिन है - लेकिन आप इसे घुमा सकते हैं, और अनुमत शब्दों के श्वेतसूची का उपयोग कर सकते हैं । एक Google खोज करना, बच्चों के खेल के लिए यह काफी सामान्य लगता है कि वे एक सूची में क्या लिख ​​सकते हैं। उदाहरण के लिए, लेगो यूनिवर्स एक श्वेतसूची का उपयोग करता है।

यह भी देखें: खेल चैट के लिए श्वेत सूची बनाती । और ध्यान दें कि श्वेतसूची को दरकिनार किया जा सकता है । कोई गारंटीकृत समाधान नहीं है।

Considering that it's for young children, and mis-spelling could be a problem - depending on the client interface, you might consider word auto-completion. As the players start typing letters, offer a list of possible words and let them select the correct one.


Good idea, though it would seem strange to me on a game for younger children that may get spelling wrong. It could also hinder their personal development out of the scope of what is available on the whitelist.
Jonathan Connell

@3nixios, I agree it has problems, but so do every possible solution. :) One fix to the spelling problem would be - wait, I should add that to my post. :)
Cyclops

+1: this will be a lot safer but as @3nixios: says it would either hinder development or it will be a very big list and so the execution time gets increased right?
naveen

क्लाइंट प्रकार (मैं HTML / जावास्क्रिप्ट मान रहा हूं) के आधार पर @yananothercoder, आप मान्य शब्दों की सूची को पूर्व-डाउनलोड कर सकते हैं और क्लाइंट में उनकी जांच कर सकते हैं। यह सर्वर को धीमा नहीं करेगा (यह सैद्धांतिक रूप से एक स्मार्ट प्रोग्रामर द्वारा बाईपास किया जा सकता है, हालांकि)। हां, यह अधिक काम है - फिर से, कोई आसान समाधान नहीं है, क्षमा करें। यह सब इस बात पर निर्भर करता है कि जोखिम कितना स्वीकार्य है।
साइक्लोप्स

1
@ बच्चों के खेल के लिए यदि आप केवल बच्चों के खेलने पर विचार करें तो यह एक स्वीकार्य समाधान हो सकता है। दुर्भाग्य से क्लाइंट-साइड चेकिंग का मतलब होगा 'बैड-मैन' आसानी से कह सकता है कि वह अन्य खिलाड़ियों को क्या पसंद करता है।
जोनाथन कॉनेल

4

There's an answer from Programmers describing one system for building a profanity filter. He doesn't explain how he actually built it in great detail, but it should be enough to get an idea for implementation.


4

This is a problem best solved by humans and social design rather than code.

Your best source for an exhaustive list is a live human who is present in the game and monitoring the chat stream. Put people in your game and let them be your ultimate filter.

Spend some time looking into Lane Merrifield's ideas and philosophies behind Club Penguin and about providing service. Here are two writeups from his presentation at the Austin GDC in 2008. I saw it and remember being very impressed with his style of solving human problems with humans and not code.

http://gamasutra.com/php-bin/news_index.php?story=20234

http://www.raphkoster.com/2008/09/15/agdc08-lane-merrifield-at-their-service/

Specifically because your game is aimed at kids, it's more than just swear filters you'll need to think about. You'll need to worry about people posing as kids who may or may not have bad motives. You'll need to assure parents that their kids are safe. You'll need to assure kids that they are safe too for that matter.

Another plus for humans is that they will understand context. You don't want some kid saying, "My Mom has breast cancer" and getting kicked.


we sure do have moderators who could ban potential manipulators. i am more concerned about profanity. it will be a tedious task for moderators when, most of the words used in the bad context will be repetitive.
naveen

I'd say certainly you can have profanity filters active to detect what you might call the common stuff, and flag it to the moderators. It's not that hard to come up with a "top 100" list of words, then do some quick pattern matching on all strings. Remove all spaces and punctuation first so people don't C_H_E_A_T or M A N I P U L A T E the algorithm. Ultimately though its' humans that will do it right.
Tim Holt

3

Simple solution to the problem:

  1. Remove all spaces and punctuation from your input.
  2. Blacklist everything in the Urban Dictionary.
  3. Blacklist all homophones etc
  4. Blacklist everything that could be use as a euphamism.
  5. Write your software to understand the content, intention and tone of what is left.
  6. Throw away game and go to market with sentient and omniscient creation from step 5.

6
homo phones lolololol
Jonathan Connell

3
This is the end result of the spammers captcha solvers and spam filters: sentient AI that battles for control of Earth: one side trying to sell Viagra and the other trying to protect Humanity. Very Transformers. :-)
Zan Lynx

3

Some MMOs for children simply replace chat with a predefined list of emotes and phrases and simply doesn't allow free-form chat. Perhaps the game could be designed to accommodate that.

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.