2012-01-23 16 views
5

अब यह एक मुश्किल समस्या है जिसके लिए मैं एक अच्छा समाधान नहीं ढूंढ पा रहा हूं। मान लें कि हमारे पास जावा में एक स्ट्रिंग है: - "उसने आज 3 सेब खाए।" अब अंक 3 को आसानी से जावा में अनन्य फ़ंक्शन का उपयोग करके या नियमित अभिव्यक्तियों का उपयोग करके पहचाना जा सकता है। लेकिन क्या होगा यदि मेरे पास एक स्ट्रिंग है: "उसने आज तीन सेब खाए।" मैं कैसे पहचान सकता हूं कि तीन वास्तव में एक संख्या है? मैंने ओपनएनएलपी का इस्तेमाल किया और अपने पीओएस टैगर का इस्तेमाल किया लेकिन यह करने में जितना समय लगता है वह वास्तव में बहुत अधिक है! क्या कोई इस के लिए बेहतर समाधान सुझा सकता है? OpenNlp के ".bin" के बीच में, एक फ़ाइल- "num.bin" है, लेकिन मुझे नहीं पता कि इस फ़ाइल का उपयोग कैसे करें। ओपनएनएलपी दस्तावेज इसके बारे में कुछ भी नहीं कहता है। क्या कोई मुझे बता सकता है कि यह वही है जो मैं खोज रहा हूं, और यदि हां तो इसका उपयोग कैसे करें।जावा में पाठ प्रसंस्करण

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

+0

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

+0

हां ... केवल संख्या .... लेकिन किसी भी प्रकार की संख्या, दशमलव, अंश, प्रतिशत, 3-1 की तरह फुटबॉल स्कोर का पता लगाया जाना चाहिए ...... केवल अंग्रेजी भाषा के लिए ... –

उत्तर

0

आपको उन सभी शब्दों को सरणी में रखना होगा और फिर इसका उपयोग करना होगा।Here एक उदाहरण है कि नंबर को स्ट्रिंग में कैसे परिवर्तित करें। यह आपकी मदद कर सकता है ... मुझे लगता है कि आपको अपने पाठ को शब्दों में विभाजित करना होगा और जांचना होगा कि कोई शब्द एक संख्या है (तीन)। यदि हाँ अगला शब्द जांचें क्योंकि इसे "मिलियन" कहा जा सकता है, तो अगला शब्द और इसी तरह की जांच करें। यह आसान नहीं है और एक छोटी पुस्तकालय की तरह लगता है। मुझे लगता है कि आप इसे लिखने में काफी समय व्यतीत करेंगे। या इस तरह की लाइब्रेरी के लिए Google में खोजने का प्रयास करें। शायद किसी को पहले से ही यह समस्या मिल गई है, एक पुस्तकालय लिखा है और इसे मुफ्त में साझा करता है)) शुभकामनाएँ।

1

संख्याओं का एक शब्दकोश बनाएँ। पाठ में उस शब्दकोश के तत्वों के लिए खोजें।

एसिम्पोटिक जटिलता की जांच करें, पहले टेक्स्ट को सॉर्ट करना सस्ता हो सकता है।

+0

हाँ यह संभव है , लेकिन फिर शब्दकोश कितना बड़ा हो जाएगा? सौ, चालीस तिहाई, पचास, और इतने पर पाठ .... मुझे शब्दकोश में उन सभी संभावित शब्दों को जोड़ना होगा ..... –

+0

तब कोई शब्दकोश नहीं, एक भारित दिशात्मक ग्राफ का उपयोग करें। –