2012-04-16 13 views
9

मैं ओपनएनएलपी के NameFinder एपीआई उदाहरण दस्तावेज़ का उपयोग कर रहा हूं। जब मैं ग्रहण में इस लाने 'दस्तावेज'ओपनएनएलपी नाम खोजक

for (String document[][] : documents) { 

    for (String[] sentence : document) { 
    Span nameSpans[] = nameFinder.find(sentence); 
    // do something with the names 
    } 

    nameFinder.clearAdaptiveData() 
} 

हालांकि (नहीं 'दस्तावेज़') चर मुझे चर कह एक त्रुटि दे रहा है: आरंभ नाम खोजक के बाद प्रलेखन इनपुट पाठ के लिए निम्न कोड का उपयोग करता है दस्तावेजों को हल नहीं किया जा सकता। दस्तावेज 'दस्तावेज़' सरणी चर के साथ संदर्भित क्या है? क्या मुझे 'दस्तावेज' नामक एक सरणी को प्रारंभ करने की आवश्यकता है जो इस त्रुटि के लिए txt फ़ाइलों को दूर करने के लिए है?

आपकी मदद के लिए धन्यवाद।

उत्तर

16

OpenNLP documentation बताता है कि इनपुट टेक्स्ट दस्तावेज़, वाक्यों और टोकन में विभाजित किया जाना चाहिए। आपके द्वारा प्रदान किए गए कोड का टुकड़ा बताता है कि कई दस्तावेज़ों से कैसे निपटें।

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

किसी दस्तावेज़ से वाक्यों की एक सरणी बनाने के लिए आप OpenNLP SentenceDetector का उपयोग कर सकते हैं, और प्रत्येक वाक्य के लिए आप टोकन की सरणी प्राप्त करने के लिए OpenNLP Tokenizer का उपयोग कर सकते हैं।

आपका कोड इस तरह दिखेगा:

// somehow get the contents from the txt file 
//  and populate a string called documentStr 

String sentences[] = sentenceDetector.sentDetect(documentStr); 
for (String sentence : sentences) { 
    String tokens[] = tokenizer.tokenize(sentence); 
    Span nameSpans[] = nameFinder.find(tokens); 
    // do something with the names 
    System.out.println("Found entity: " + Arrays.toString(Span.spansToStrings(nameSpans, tokens))); 
} 

आप OpenNLP documentation प्रलेखन से SentenceDetector और Tokenizer उपयोग करने के लिए सीख सकते हैं।

+0

आपके उत्तर के लिए धन्यवाद! मैंने इसे प्लग किया है लेकिन अभी भी त्रुटि प्राप्त करें: "मिस्चैच टाइप करें: तत्व प्रकार स्ट्रिंग से स्ट्रिंग []" में परिवर्तित नहीं हो सकता है और वाक्य परिवर्तक लाइन 5 पर मुझ पर त्रुटि कर रहा है: (स्ट्रिंग [] वाक्य: वाक्यों) { – Chris

+0

हां, वहां एक त्रुटि थी बस [] से स्ट्रिंग वाक्य []: वाक्यों को हटा दिया गया है। धन्यवाद। – wcolen

+0

wcolen, आपकी सभी मदद के लिए धन्यवाद। एकमात्र मुद्दा जब मैं सरणी सिंटैक्स को हटाता हूं [] अगली पंक्ति अब मुझ पर छाल जाती है क्योंकि खोज विधि तर्क के रूप में एक सरणी लेती है, इसलिए वाक्य काम नहीं करता है: span nameSpans [] = nameFinder.find (वाक्य); – Chris

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