2010-03-31 12 views
6

में मेरा ईमेल प्रश्न संक्षेप में: क्या किसी को ट्विटर विश्लेषक या ट्विटर टोकनेज़र लुसीन के लिए पता है?लुसेन

अधिक विस्तृत संस्करण:

मैं सूचकांक करने के लिए Lucene में ट्वीट्स की एक संख्या चाहते हैं और @user या #hashtag बरकरार जैसे शब्दों रहते हैं। StandardTokenizer काम नहीं करता है, क्योंकि यह विराम चिह्न को छोड़ देता है (लेकिन यह डोमेन नाम, ईमेल पते रखने या शब्दों के संक्षिप्त पहचानने की तरह अन्य उपयोगी सामग्री करता है)। मैं एक विश्लेषक कैसे कर सकता हूं जो मानक टाकेनाइज़र सबकुछ करता है लेकिन @user और #hashtag जैसे शब्दों को स्पर्श नहीं करता है?

मेरे वर्तमान समाधान यह विश्लेषक में खिला और अन्य अक्षरांकीय तार के आधार पर पात्रों की जगह से पहले ट्वीट पाठ preprocess है। उदाहरण के लिए,

String newText = newText.replaceAll("#", "hashtag"); 
newText = newText.replaceAll("@", "addresstag"); 

दुर्भाग्य से यह विधि वैध ईमेल पते तोड़ती है लेकिन मैं इसके साथ रह सकता हूं। क्या वह दृष्टिकोण समझ में आता है?

अग्रिम धन्यवाद!

Amac

+0

आपका अंतिम समाधान कैसा दिखता है? – Karussell

+2

यदि आपको सोलर के लिए समाधान की आवश्यकता है तो इससे मदद मिल सकती है: https://issues.apache.org/jira/browse/SOLR-2059 और "# => ALPHA" "@ => ALPHA" – Karussell

उत्तर

5

StandardTokenizer और StandardAnalyzer मूल रूप से एक StandardFilter (जो शब्द के अंत में की तरह अपने मानक टोकन से पात्रों के सभी प्रकार को हटा), एक छोटे फिल्टर के बाद के माध्यम से अपना टोकन पारित (अपने शब्दों से स्पर्श करें) और अंत में एक स्टॉपफिल्टर द्वारा। वह आखिरी व्यक्ति "as", "in", "for", आदि जैसे महत्वहीन शब्दों को हटा देता है।

प्रारंभ करने के लिए आप आसानी से क्या कर सकते हैं अपने स्वयं के विश्लेषक को लागू करें जो मानक विश्लेषक के समान प्रदर्शन करता है लेकिन व्हाइटस्पेस टोकनाइज़र का उपयोग करता है पहला आइटम जो इनपुट स्ट्रीम को संसाधित करता है। https://github.com/brendano/ark-tweet-nlp/blob/master/src/cmu/arktweetnlp/Twokenize.java

+0

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

+1

एक और दृष्टिकोण PerFieldAnalyzerWrapper का उपयोग करना और हैश टैग और उपयोगकर्ता संदर्भों को स्पष्ट रूप से देखने के लिए सामग्री के माध्यम से दूसरा पास करना और उन्हें अपने दस्तावेज़ के एक अलग क्षेत्र (जैसे 'टैग' और 'उत्तरों') में डाल देना है। उन क्षेत्रों के विश्लेषकों ने क्रमशः #tag और @user के अवसरों के लिए टोकन वापस कर दिया। – Thomas

+0

हाँ, यह समझ में आता है। धन्यवाद! –

0

से अधिक देख सकते हैं के लिए एक ट्विटर विशेष यहाँ tokenizer नहीं है संदूक-ट्वीट-NLP एपीआई http://preciselyconcise.com/apis_and_installations/tweet_pos_tagger.php यह API ट्वीट में मौजूद इमोटिकॉन, हैशटैग, विस्मयादिबोधक आदि की पहचान करने में सक्षम है में पाया जा सकता

0

चहचहाना विशिष्ट tokenizer पर एक ट्यूटोरियल का एक संशोधित संस्करण है जो:

अधिक जानकारी के एक विश्लेषक की अंदरूनी कामकाज आप here

0

ट्विटर एपीआई सभी ट्वीट वापस जाने के लिए, बायोस आदि के साथ कहा जा सकता है "संस्थाओं" (हैशटैग, userIds, यूआरएल आदि) पहले से ही संग्रह में सामग्री से बाहर पार्स।

https://dev.twitter.com/docs/entities

तो आप बस एक तरह से कुछ है कि ट्विटर पर लोगों को पहले से ही आप के लिए किया है फिर से करने के लिए नहीं देख रहे हैं?

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