2009-10-15 13 views
36

उपयोग करके कीवर्ड प्राप्त करने के लिए मैं टेक्स्ट का ढेर कैसे डेटा कर सकता हूं? ("जैकब स्मिथ" या "बाड़")टेक्स्ट में इस्तेमाल किए गए कीवर्ड कैसे निकालें?

और क्या यह पहले से ही ऐसा करने के लिए एक सॉफ्टवेयर है? यहां तक ​​कि अर्द्ध स्वचालित रूप से, और यदि यह "द", "और", "या" जैसे सरल शब्दों को फ़िल्टर कर सकता है, तो मैं विषयों को तेज़ी से प्राप्त कर सकता हूं।

उत्तर

39

सामान्य एल्गोरिथ्म इस तरह जाने के लिए जा रहा है:

 
- Obtain Text 
- Strip punctuation, special characters, etc. 
- Strip "simple" words 
- Split on Spaces 
- Loop Over Split Text 
    - Add word to Array/HashTable/Etc if it doesn't exist; 
     if it does, increment counter for that word 

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

आप भी Stemming पर देखना चाहते हैं। स्टेमिंग शब्द को अपनी जड़ में कम करने के लिए प्रयोग किया जाता है। उदाहरण के लिए going => go, cars => car, आदि

इस तरह एक एल्गोरिदम स्पैम फ़िल्टर, कीवर्ड इंडेक्सिंग और इसी तरह के समान होने वाला है।

+0

क्या आप कुछ स्रोत -> स्ट्रिप "सरल" शब्द सूची दे सकते हैं। मैं उन्हें –

+0

प्राकृतिक भाषा में खोजने में असमर्थ हूं, "सरल" शब्दों को अक्सर स्टॉप शब्दों के रूप में जाना जाता है। http://en.wikipedia.org/wiki/Stop_words। चारों ओर stopwords.txt फ़ाइलों के बहुत सारे हैं ... उदाहरण के लिए। http://ir.dcs.gla.ac.uk/resources/linguistic_utils/stop_words – roy

+0

अंग्रेजी स्टॉप शब्दों की एक सूची: http://xpo6.com/list-of-english-stop-words/ –

119

यह एनएलपी में एक खुला प्रश्न है, इसलिए कोई आसान जवाब नहीं है।

त्वरित और गंदे "मेरे लिए काम करता है" के लिए मेरी सिफारिश topia.termextract है।

याहू में एक कीवर्ड निष्कर्षण सेवा (http://developer.yahoo.com/search/content/V1/termExtraction.html) है जो कम याद है लेकिन उच्च परिशुद्धता है। दूसरे शब्दों में, यह आपको उच्च गुणवत्ता वाले शब्दों की एक छोटी संख्या देता है, लेकिन आपके दस्तावेज़ों में से कई शर्तों को याद करता है।

पायथन में, topia.termextract (http://pypi.python.org/pypi/topia.termextract/) है। यह अपेक्षाकृत शोर है, और कई फर्जी कीवर्ड का प्रस्ताव है, लेकिन इसका उपयोग करना आसान है।

टर्मिन (http://www.nactem.ac.uk/software/termine/) एक यूके webservice है जो अपेक्षाकृत शोर है, और कई फर्जी कीवर्ड का प्रस्ताव है। हालांकि, यह मुझे topia.termextract से थोड़ा अधिक सटीक प्रतीत होता है। YMMV।

बहुत सारे कीवर्ड (जैसे topia.termextract और टर्मिन) के साथ परिणामों को नकारने का एक तरीका है जो अक्सर होने वाली शर्तों की शब्दावली बनाना है, और फिर शब्दावली में प्रस्तावित शर्तों को फेंकना है। दूसरे शब्दों में, अपने कॉर्पस पर दो पास करें: पहला पास, प्रत्येक कीवर्ड की आवृत्ति को गिनें। दूसरे पास में, उन कीवर्ड को छोड़ दें जो बहुत दुर्लभ हैं।

  • "स्वचालित शब्दकोष निष्कर्षण: शब्दावली पहचान से परे" उपलब्ध http://portal.acm.org/citation.cfm?id=1072370 पर
  • "शब्दावली

    आप अपने खुद के लिखने के लिए चाहते हैं, शायद सबसे अच्छा परिचय पार्क, जो आईबीएम में अब है ने लिखा है निष्कर्षण और जानकारी खोज और आईबीएम तकनीकी सहायता के लिए वितरण प्रणाली "

यहाँ, कुछ और संदर्भ हैं यदि आप और अधिक जानना चाहते हैं में उपयोग:

  • http://en.wikipedia.org/wiki/Terminology_extraction
  • "CorePhrase: दस्तावेज़ क्लस्टरिंग के लिए Keyphrase निष्कर्षण"
  • लियू एट NAACL HLT से अल 2009
  • "डेटा खनन की बैठक collocations डिस्कवरी" "स्वत: गैर compositional वाक्यांश की पहचान"
  • साथ ही साथ अन्य संदर्भों के एक मेजबान आप इस विषय पर खोद सकते हैं।
5

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

मैं हमेशा Advanced Bash-Scripting Guide (12-11)

में शब्द आवृत्ति विश्लेषण उदाहरण से प्रभावित किया गया है, उदाहरण के लिए निम्नलिखित परियोजना Gutenburg से एक किताब को हासिल करेगा और एक शब्द आवृत्ति विश्लेषण 'रिपोर्ट' बाहर लिखते हैं:

wget http://www.gutenberg.org/files/20417/20417-8.txt -q -O- | 
sed -e 's/\.//g' -e 's/\,//g' -e 's/ /\ 
/g' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr > output.txt 

एक 'आम' सूची से बाहर करने के लिए शब्द बढ़ाई होना चाहिए (और, एक ...) आदि

9

वहाँ भी एक सेवा है कहा जाता Alchemy कि अवधि निकासी कर सकते हैं, अवधारणा टैगिंग भावना विश्लेषण और इतने पर।

यह मान्य है, मैंने इसका परीक्षण किया लेकिन मुझे नहीं पता कि वे वाणिज्यिक नीतियां (यदि कोई हैं)। वे किसी भी प्रकार की भाषा (बहुत ज्यादा) के लिए एपीआई प्रदान करते हैं।

मैंने कहीं पढ़ा है (माफ करना मुझे अब और याद नहीं है) कि किल्हे द्वारा दिए गए आउटपुट यूसुफ द्वारा प्रस्तावित लोगों की तुलना में कम शोर है।

+0

'कीमिया' दिखता है बहुत प्रभावी होने के लिए। लेकिन क्या एक ऑफ़लाइन समकक्ष है? कोज़, लॉटा डेटा से निपटने पर, क्लाउड आधारित समाधान कम कुशल लगता है। – bdhar

+1

एक पाइथन टूलकिट है जो बहुत ही आशाजनक दिखता है (मैंने अनुभव किए गए कुछ अनुभवजन्य मूल्यांकनों से): http://www.nltk.org/ –

0

मैंने कुछ सफलता के साथ एनटीएलके recognize named entities पर उपयोग किया है। यह लोगों और संगठन के नामों को पहचानने में विशेष रूप से अच्छा है।

1

मैं व्यक्तिगत रूप से माउ (http://code.google.com/p/maui-indexer/) की सलाह देता हूं: यह केए पर निर्भर करता है लेकिन इसे विभिन्न तरीकों से बढ़ाता है। यह प्रशिक्षित है और आरडीएफ प्रारूपित शब्दावली का उपयोग कर सकते हैं।

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