17

मान लीजिए कि आप 2 समूहोंन्यूरल नेटवर्क

  • वास्तविक ईमेल
  • स्पैम
  • में वर्गीकृत पिछले साल (~ 10k ईमेल) से प्राप्त ईमेल के इतिहास के साथ एक ईमेल खाते के लिए उपयोग किया करते हैं

आप एक तंत्रिका नेटवर्क समाधान बनाने के कार्य से कैसे संपर्क करेंगे जिसका उपयोग स्पैम पहचान के लिए किया जा सकता है - मूल रूप से किसी भी ईमेल को स्पैम के रूप में वर्गीकृत करना या स्पैम नहीं?

मान लीजिए कि ईमेल लाने वाला पहले से ही मौजूद है और हमें केवल वर्गीकरण भाग पर ध्यान केंद्रित करने की आवश्यकता है।

मुख्य बिंदु जो मैं आशा करता हूं होगा जवाब पाने के लिए:

  1. एनएन के लिए इनपुट, और क्यों के रूप में चयन करने के लिए पैरामीटर है?
  2. एनएन की कौन सी संरचना इस तरह के कार्य के लिए सबसे अच्छा काम करेगी?

इसके अलावा किसी भी संसाधन सिफारिशों, या मौजूदा कार्यान्वयन (अधिमानतः सी # में) की तुलना में स्वागत

अधिक धन्यवाद

संपादित

  • मैं के रूप में तंत्रिका नेटवर्क का उपयोग करने पर सेट कर रहा हूँ कर रहे हैं प्रोजेक्ट पर मुख्य पहलू यह जांचना है कि कैसे एनएन दृष्टिकोण स्पैम पहचान
  • अल के लिए काम करेगा इसलिए यह तंत्रिका नेटवर्क और स्पैम

उत्तर

24

आप NNS पर जोर देते हैं ... मैं हर ईमेल

दोनों चरित्र आधारित, वर्ड आधारित के लिए कुछ सुविधाओं की गणना होगी, और शब्दावली सुविधाओं (के बारे में 97 मैं इन गिनती के रूप में):

  1. कुल पात्रों में से कोई (सी)
  2. कुल अल्फा वर्ण/अल्फा वर्ण की सी अनुपात का कोई
  3. कुल अंकों वर्ण का कोई/सी
  4. कुल खाली स्थान के वर्ण का कोई/सी
  5. प्रत्येक अक्षर/सी (कीबोर्ड के 36 अक्षरों - एजेड, 0-9)
  6. विशेष वर्णों की आवृत्ति (10 वर्ण: *, _, +, =%, $, @,, \, /)
  7. कुल शब्दों में शब्द (एम)
  8. कुल कम शब्दों का कोई/एम दो पत्र या उससे कम
  9. कुल वर्ण का कोई का कोई/सी
  10. औसत शब्द लंबाई
  11. औसत। वर्णों में वाक्य की लंबाई
  12. औसत। शब्दों में वाक्य की लंबाई
  13. शब्द लंबाई freq। लंबाई एन के शब्दों का वितरण/एम अनुपात, 1 और 15
  14. अद्वितीय शब्दों/एम
  15. हैपैक्स लेगोमेना फ्रीक के टोकन अनुपात संख्या टाइप करें।एक बार होने वाले शब्दों का
  16. हैपैक्स डिस्लेगोमेना फ्रीक। की दो बार होने वाली शब्द
  17. यूल के कश्मीर उपाय
  18. सिम्पसन डी उपाय
  19. Sichel के एस उपाय
  20. ब्रुनेट के डब्ल्यू उपाय
  21. होनोर के आर उपाय विराम चिह्न 18 विराम चिह्न वर्ण की
  22. आवृत्ति:। ,; ? ! :() - "« »<> [] {}

तुम भी कुछ और अधिक सुविधाओं स्वरूपण के आधार पर जोड़ सकते हैं: रंग, फ़ॉन्ट, आकार, ... का इस्तेमाल किया।

इनमें से अधिकतर उपाय ऑनलाइन, कागजात, या यहां तक ​​कि विकिपीडिया में भी मिल सकते हैं (वे सभी सरल गणनाएं हैं, शायद अन्य सुविधाओं के आधार पर)।

तो लगभग 100 विशेषताओं के साथ, आपको 100 इनपुट, छिपी परत में कुछ नोड्स और एक आउटपुट नोड की आवश्यकता होती है।

आपके वर्तमान पूर्व-वर्गीकृत कॉर्पस के अनुसार इनपुट को सामान्यीकृत करने की आवश्यकता होगी।

मैं इसे दो समूहों में विभाजित करता हूं, एक प्रशिक्षण समूह के रूप में उपयोग करता हूं, और दूसरा परीक्षण समूह के रूप में उपयोग करता हूं, उन्हें कभी मिश्रण नहीं करता। हो सकता है कि समान स्पैम/नॉनस्पैम अनुपात वाले ट्रेन/परीक्षण समूहों के 50/50 अनुपात पर।

8

पर विषय का पता लगाने के लिए बस "खिलौना समस्या" है, क्या आप इसे तंत्रिका नेटवर्क के साथ कर रहे हैं? ऐसा लगता है आप Bayesian classification, जो पॉल ग्राहम ने निबंध के एक जोड़े में अच्छी तरह से उल्लिखित है उपयोग करने के लिए पूरी तरह तैयार हैं की तरह बहुत अच्छी तरह से:

वर्गीकृत इतिहास आप उपयोग कर सकते है एक बेयसियन एल्गोरिदम को खिलाने के लिए बहुत मजबूत निगम बनाना होगा, तो आप शायद काफी प्रभावी परिणाम के साथ समाप्त हो जाएंगे।

+0

धन्यवाद चाड, हाँ, मैं एनएन के साथ ऐसा करने के लिए तैयार हूं, यह एक आवश्यकता है, और यह वास्तव में परीक्षण करना है कि एनएन दृष्टिकोण इस संदर्भ में काम करेगा या नहीं। – kristof

2
  1. आपको मूल रूप से फीचर निष्कर्षण के तंत्रिका नेट को डिजाइन और प्रशिक्षण के लिए समान दायरे की एक पूरी समस्या होगी। जहां मैं शुरू करूंगा, अगर मैं आप थे, तो बड़ी संख्या में इनपुट टेक्स्ट को स्लाइसिंग और डाइसिंग में डालने में, प्रत्येक व्यक्ति "इस न्यूरॉन सिग्नल 1.0 यदि 'कीमत' और 'वियाग्रा' की रेखाओं के साथ एक संभावित फीचर इनपुट होता है एक दूसरे के 3 शब्दों के भीतर ", और स्पैम पहचान के साथ सर्वोत्तम पूर्ण सहसंबंध के अनुसार उनको खींचना।
  2. मैं अपनी सर्वश्रेष्ठ 50 से 200 इनपुट फीचर न्यूरॉन्स ले कर शुरू कर दूंगा और उन्हें एक आउटपुट न्यूरॉन (1.0 = स्पैम, -1.0 = स्पैम नहीं) के लिए प्रशिक्षित मूल्यों को जोड़कर शुरू करूंगा, यानी एक सिंगल लेयर परसेप्ट्रॉन। यदि मैं खराब काम करता हूं, तो मैं बहु-परत बैकप्रोपैगेशन नेट का प्रयास कर सकता हूं, लेकिन महान परिणामों के लिए मेरी सांस नहीं पकड़ूंगा।

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

+0

चीयर्स कैओस, अच्छा बिंदु। मैं एनएन के रूप में समान जटिलता की समस्या के रूप में फीचर निष्कर्षण पर भी विचार करता हूं। और हाँ यह वास्तव में तंत्रिका जाल की खोज के लिए एक खिलौना समस्या है – kristof

2

चाड, जवाब आप अब तक मिल गया है उचित हैं, लेकिन मैं अपने अपडेट में जवाब देंगे कि:

मैं परियोजना पर मुख्य पहलू के रूप में तंत्रिका नेटवर्क का उपयोग करने पर सेट कर रहा हूँ परीक्षण करने के लिए है स्पैम पहचान के लिए एनएन दृष्टिकोण कैसे काम करेगा।

ठीक है, तो आपको कोई समस्या है: इस तरह का एक अनुभवजन्य परीक्षण अनुपयुक्त साबित नहीं कर सकता है।

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

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

+0

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

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