2011-03-09 12 views
11
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 
Mar 9, 2011 1:22:06 PM edu.stanford.nlp.process.PTBLexer next 
WARNING: Untokenizable: � (U+FFFD, decimal: 65533) 

ये त्रुटियां हैं जो मुझे मिल रही हैं जब मैं वाक्यों में पीओएस टैग असाइन करना चाहता हूं। मैंने एक फाइल से वाक्यों को पढ़ा। प्रारंभ में (कुछ वाक्यों के लिए) मुझे यह त्रुटि नहीं मिल रही है (i.e untokenizable), लेकिन कुछ वाक्यों को पढ़ने के बाद यह त्रुटि उत्पन्न होती है। मैं पीओएस टैगर के v2.0 (यानी 200 9) का उपयोग करता हूं और मॉडल left3words है।जावा उपयोग में स्टैनफोर्ड पीओएस टैगर

+0

लगता है कि आप आंतरिक एपीआई साझा कर रहे हैं, तो कृपया इसे हटा दें और अपना सामान्य प्रश्न और आवश्यक अपवाद संदेश दें। वर्ग के नाम के साथ नहीं। सुरक्षा बाधाओं के लिए ... –

+1

क्या आप इस समाधान को पोस्ट कर सकते हैं? –

उत्तर

8

मैं युगल के साथ सहमत हूं - एक चरित्र एन्कोडिंग समस्या, लेकिन सबसे आम मामला वास्तव में है जब फ़ाइल एक बाइट एन्कोडिंग में आईएसओ -885 9 -1 है, जबकि टैगर इसे यूटीएफ -8 में पढ़ने की कोशिश कर रहा है।पर यू + एफएफएफडी की चर्चा देखें।

+0

असल में मैं टैगिंग के लिए पूरी तरह से एक फ़ाइल नहीं दे रहा हूं। मैं टैगिंग के लिए फ़ाइल से निकाले गए वाक्यों को देता हूं। कोड, मैंने अपनी परियोजना में उपयोग किया है निम्नानुसार है: सूची <वाक्य > वाक्यों = MaxentTagger।tokenizeText (नया स्ट्रिंग रीडर (स्ट्रिंग 1)); (वाक्य वाक्य: वाक्यों) { वाक्य tSentence = MaxentTagger.tagSentence (वाक्य); tag_s1_local = tSentence.toString (झूठा); } – KNsiva

+0

लेकिन ऐसा लगता है कि आपके इनपुट स्ट्रिंग में यू + एफएफएफडी वर्ण हैं, जो सामान्य रूप से नहीं होना चाहिए, और स्ट्रिंग का उत्पादन करने वाले किसी भी कोड में वर्ण एन्कोडिंग के साथ पहले की समस्या को प्रतिबिंबित करना प्रतीत होता है। अगर आप स्ट्रिंग के पात्रों को charAt() के साथ एक-एक करके प्रिंट करते हैं तो आपको क्या मिलता है? –

+0

यह कुछ वाक्यों के लिए मूल पात्रों को प्रिंट कर रहा है जिनमें कुछ पात्र नहीं हैं!, "," .. आदि। लेकिन जब इन पात्रों से मुकाबला होता है तो समस्या उत्पन्न होती है। – KNsiva

2

यह मेरे लिए एक एन्कोडिंग समस्या की तरह दिखता है। क्या आप अपमानजनक वाक्य पोस्ट कर सकते हैं? मुझे दस्तावेज़ में यह नहीं मिला, लेकिन मैं यह जांचने की कोशिश करता हूं कि फ़ाइल यूटीएफ -8 एन्कोडिंग में है या नहीं।

+0

मैंने इसे फ़ाइल से पढ़ने और टैग करने का प्रयास करने के बाद वाक्यों को यूटीएफ -8 प्रारूप में परिवर्तित कर दिया है। प्रारंभ में कुछ वाक्यों के लिए मेरे लिए कोई समस्या नहीं है। केवल कुछ वाक्यों को पूरा करने के बाद ही चेतावनी उत्पन्न होती है। कोड है: स्ट्रिंग स्ट्रिंग 1 = file_read.readLine(); बाइट [] utf81 = string1.getBytes ("UTF-8"); स्ट्रिंग 1 = नया स्ट्रिंग (utf81, "यूटीएफ -8"); इस पंक्ति के बाद स्ट्रिंग 1 को टैगर को पास कर दिया गया है जैसा कि मैंने उपर्युक्त टिप्पणी में दिखाया है। – KNsiva

+0

अपना कोड और क्रिस्टोफर मैनिंग का जवाब पढ़ना, मेरा मानना ​​है कि आप इसे गलत तरीके से शुरू कर रहे हैं। आपकी इनपुट फ़ाइल के साथ शुरू करने के लिए यूटीएफ -8 एन्कोडिंग में होना चाहिए। यदि यह एक बाइट एन्कोडिंग में है, तो टैगर मूल पात्रों को पुनर्प्राप्त नहीं कर सकता है। –

+0

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

0

यदि आप डीओसी, पोर्टेबल दस्तावेज़ प्रारूप (पीडीएफ) से सामग्री पढ़ रहे हैं तो अपाचे टिका का उपयोग करें। यह आपकी सामग्री निकाल देगा। यह आपकी मदद कर सकता है।

Apache Tika

टीका

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

अधिक जानकारी, मेलिंग सूची, डाउनलोड और अधिक के रूप में अच्छी पर http://tika.apache.org/

1

मैं इस मुद्दे में भाग उपलब्ध हैं। यह जांचने का एक तरीका है कि कोई चरित्र टोकनज़ेबल है या नहीं, यह जांचना है कि यह Character.isIdentifierIgnorable() विफल रहता है या नहीं। एक चरित्र जो अनजान है, true लौटाएगा, जबकि सभी टोकनज़ेबल पात्र false वापस आ जाएंगे।

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