2009-08-22 10 views
6

मान लें कि मेरे पास डोमेन नामों की एक सूची है जिसे मैं विश्लेषण करना चाहता हूं। जब तक डोमेन नाम हाइफेनेटेड नहीं होता है, तब तक मुझे डोमेन में उपयोग किए गए कीवर्ड को "निकालने" का एक विशेष रूप से आसान तरीका नहीं दिखाई देता है। अभी तक मैं उदाहरण के लिए यह इस तरह DomainTools.com, Estibot.com के रूप में साइटों पर किया देखते हैं, आदि:प्रोग्राम नाम से डोमेन नामों से कीवर्ड निकालें

ilikecheese.com becomes "i like cheese" 
sanfranciscohotels.com becomes "san francisco hotels" 
... 

इस कुशलतापूर्वक और प्रभावी ढंग पूरा करने के लिए कोई सुझाव?

संपादित करें: मैं इसे PHP में लिखना चाहता हूं।

+0

कौन सी प्रोग्रामिंग भाषा? – rahul

+0

PHP, मेरे प्रश्न को संपादित करने के लिए संपादित किया गया, धन्यवाद। – Kevin

+0

pspell चेक के साथ विपरीत में स्ट्रिंग पर चलाएं - eseehc = चीज़, स्ट्रिंग से पनीर घटाएं, ekil = like, स्ट्रिंग = जैसे की तरह घटाना; एस, एसएल, स्ली, सैलेट, स्तोटो, स्लोतोह = होटल, होटल घटाएं ... आदि। आप इसे कई बार भी चला सकते हैं और उन्हें हटाए बिना आखिरी पालियां शामिल कर सकते हैं। रिवर्स स्ट्रिंग pspell किसी भी भाषा में "असली" शब्द खोजने का एक बहुत ही आसान तरीका है। – Tobias

उत्तर

6

ठीक है, मैंने this SO question के लिए लिखे गए स्क्रिप्ट को दो मामूली परिवर्तनों के साथ लिखा - अंडरफ्लो से बचने के लिए लॉग संभावनाओं का उपयोग करके, और इसे कॉर्पस के रूप में एकाधिक फ़ाइलों को पढ़ने के लिए संशोधित किया।

मेरे कॉर्पस के लिए मैंने प्रोजेक्ट गुटेनबर्ग से फाइलों का एक समूह डाउनलोड किया - इसके लिए कोई वास्तविक विधि नहीं है, बस eext00, etext01, और etext02 से सभी अंग्रेजी-भाषा फ़ाइलों को पकड़ लिया।

परिणाम नीचे दिए गए हैं, मैंने प्रत्येक संयोजन के लिए शीर्ष तीन को सहेजा है।

 
expertsexchange: 97 possibilities 
- experts exchange -23.71 
- expert sex change -31.46 
- experts ex change -33.86 

penisland: 11 possibilities 
- pen island -20.54 
- penis land -22.64 
- pen is land -25.06 

choosespain: 28 possibilities 
- choose spain -21.17 
- chooses pain -23.06 
- choose spa in -29.41 

kidsexpress: 15 possibilities 
- kids express -23.56 
- kid sex press -32.65 
- kids ex press -34.98 

childrenswear: 34 possibilities 
- children swear -19.85 
- childrens wear -25.26 
- child ren swear -32.70 

dicksonweb: 8 possibilities 
- dickson web -27.09 
- dick son web -30.51 
- dicks on web -33.63 
+0

ऐसा लगता है कि "बच्चों के वस्त्र" नहीं थे, लेकिन मैं इस स्वचालन को 100% सटीक होने की उम्मीद नहीं कर रहा था। और मैं मानता हूं, आप बक्षीस के लायक हैं :) क्या आप स्रोत को अपने परिवर्तनों के साथ पोस्ट करना चाहते हैं? – Kevin

+0

यह मूल रूप से मेरे ब्लॉग पर समान है - बस '$ स्कोर + = लॉग ($ DICT- > {$ _}/$ TOTAL) के साथ find_word_seq_score में गुणा को प्रतिस्थापित करें; ' – SquareCog

+0

um > अधिक से अधिक माना जाता है संकेत। – SquareCog

0

आपको वैध शब्दों को खोजने के लिए एक डोमेन एंट्री के खिलाफ एक डिक्शनरी इंजन का उपयोग करना होगा और नतीजा यह होगा कि परिणाम वैध शब्द है।

+0

यह कैसे किया जाएगा इसके उदाहरण? – Kevin

+0

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

1

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

+1

विनाशकारी नहीं कहें। – Dykam

+0

सच है, लेकिन यह एक घंटे में लागू किया जा सकता था, और वह दुनिया के डोमेन नामों को विभाजित करने में पहले से ही पांच दिन आगे होगा :) – Zed

2

choosespain.com kidsexpress.com childrenswear.com dicksonweb.com

मज़ा (और एक अच्छा वकील) यदि आप करने जा रहे हैं एक शब्दकोश के साथ यूआरएल पार्स करने की कोशिश करें।

यदि आप एक ही पात्र पा सकते हैं लेकिन अपनी वेबसाइट पर सफेद स्थान से अलग हो सकते हैं तो आप बेहतर कर सकते हैं।

अन्य संभावनाएं: एसएसएल प्रमाण पत्र से डेटा निकालें; क्वेरी शीर्ष स्तर डोमेन नाम सर्वर; डोमेन नाम सर्वर (टीएलडी) तक पहुंचें; या "जोइस" उपकरण या सेवाओं में से एक का उपयोग करें (बस गूगल "जोइस")।

+0

जिन डोमेनों का मैं विश्लेषण कर रहा हूं उनमें आमतौर पर कोई साइट नहीं है। मुझे यकीन नहीं है कि डोमेन में उपयोग किए गए कीवर्ड खोजने के लिए DNS/Whois का उपयोग करके आपका क्या मतलब है। – Kevin

+1

penisland.com को मत भूलना;) –

+0

@ केविन। इंटरनेट पर यातायात नामों का उपयोग करके रूट नहीं किया जाता है लेकिन आईपी पते का उपयोग करते हैं उदा। 213.171.218.121। एक डोमेन नाम सर्वर नाम को आईपी पते पर अनुवाद करता है। टीएलडी शीर्ष स्तर डोमेन नाम सर्वर है। डोमेन नाम प्राप्त करने के लिए किसी कंपनी को पंजीकरण करना होता है और उस जानकारी को प्राप्त करने के तरीके हैं। जाहिर है यह एक निजी नेटवर्क पर डोमेन के लिए सच नहीं है, इसलिए हो सकता है कि आप जो भी करने की कोशिश कर रहे हैं उस पर लागू न हो। – Dipstick

3

this SO question देख सकते हैं।

+0

यह सबसे नज़दीक है जिसे मैंने समाधान में देखा है :) बाउंटी आपकी दिशा में छेड़छाड़ कर रहा है। – Kevin

+1

दोस्त, यह मेरा बक्षीस होना चाहिए :-) मुझे लगता है कि मैं पर्ल स्क्रिप्ट चलाऊंगा और आपको यह बता दूंगा कि यह क्या निष्कर्ष निकालता है .. – SquareCog

3

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

अगला अपना कॉर्पस लें, और प्रत्येक दो आसन्न शब्दों को गठबंधन करें। उदाहरण के लिए, यदि आपके वाक्य है:

quick brown fox jumps over the lazy dog 

आप एक सूची बना देंगे:

quickbrown 
brownfox 
foxjumps 
jumpsover 
overthe 
thelazy 
lazydog 

इन में से हर एक की गिनती होगी। जैसे ही आप अपने कॉर्पस को पार्स करते हैं, आप प्रत्येक दो शब्दों के आवृत्ति जोड़े का ट्रैक रखेंगे। इसके अतिरिक्त, प्रत्येक जोड़ी के लिए, आपको दो मूल बातें क्या क्रमबद्ध करने की आवश्यकता होगी।

इस सूची को आवृत्ति द्वारा क्रमबद्ध करें, और फिर इन शब्दों के आधार पर अपने डोमेन में मिलान ढूंढने का प्रयास करें।

आखिरकार, शीर्ष दो शब्द वाक्यांशों के लिए डोमेन जांच करें जो पंजीकृत नहीं हैं!

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

+0

मुझे यकीन नहीं है कि एमटीर्क नौकरी के लिए सही उपकरण होगा क्योंकि मैं होगा प्रतिदिन हजारों डोमेन प्रोसेसिंग। हालांकि, मुझे आपके द्वारा सुझाए गए तरीके की तरह लगता है! – Kevin

+0

विटरबी एल्गोरिदम शायद मैंने सुझाए गए की तुलना में काफी बेहतर है। डब्लूआरटी, एमटीर्क, यह इस बात पर निर्भर करता है कि आपके शब्द विभाजन में कितना महत्व है। आपके पास 10 कामों को विभाजित करने के लिए एक एमटीर्क हिट हो सकता है, और इससे आपको $ 0.015 खर्च हो सकते हैं। यह 1,000 डॉलर प्रति 1000 नाम है। यदि 'विशेषज्ञ यौन परिवर्तन' साइट ने अपने डोमेन को पहले थोड़ा परीक्षण किया था, तो हो सकता है कि वे बीच में हाइफ़न के साथ शुरू हो जाएं। – brianegge

1
function getwords($string) { 
    if(strpos($string,"xn--") !== false) { 
     return false; 
    } 
    $string = trim(str_replace('-', '', $string)); 
    $pspell = pspell_new('en'); 
    $check = array(); 
    $words = array(); 
    for($j = 0; $j < (strlen($string) - 5); $j++) { 
     for($i = 4; $i < strlen($string); $i++) { 
      if(pspell_check($pspell, substr($string, $j, $i))) { 
       $check[$j]++; 
       $words[] = substr($string, $j, $i); 
      } 
     } 
    } 
    $words = array_unique($words); 
    if(count($check) > 0) { 
     return $words; 
    } 
    return false; 
} 

print_r(getwords('ilikecheesehotels')); 

Array 
(
    [0] => like 
    [1] => cheese 
    [2] => hotel 
    [3] => hotels 
) 
pspell के साथ एक सरल शुरुआत के रूप में

। आप परिणामों की तुलना करना चाहते हैं और देख सकते हैं कि क्या आपको अंत में बिना किसी शब्द के स्टेम मिल गए हैं और उन्हें मर्ज करें।

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