10

मुफ्त टेक्स्ट से स्थानों को निकालने के लिए अनुशंसित विधियां क्या हैं?पाठ से स्थानों को निकालने के तरीके?

मैं क्या सोच सकता हूं कि "शब्द ... स्थान" जैसे रेगेक्स नियमों का उपयोग करना है। लेकिन क्या इससे बेहतर दृष्टिकोण हैं?

इसके अलावा मैं देशों और शहरों के नामों के साथ लुकअप हैश टेबल टेबल रखने के बारे में सोच सकता हूं और फिर हैश तालिका के पाठ से प्रत्येक निकाले गए टोकन की तुलना कर सकता हूं।

क्या कोई बेहतर दृष्टिकोण के बारे में जानता है?

संपादित करें: मैं ट्वीट्स टेक्स्ट से स्थानों को निकालने का प्रयास कर रहा हूं। इसलिए बड़ी संख्या में ट्वीट्स का मुद्दा किसी विधि के लिए मेरी पसंद को भी प्रभावित कर सकता है।

उत्तर

10

सभी नियम-आधारित दृष्टिकोण विफल हो जाएंगे (यदि आपका टेक्स्ट वास्तव में "मुफ़्त" है)। इसमें रेगेक्स, संदर्भ मुक्त व्याकरण, किसी भी तरह का लुकअप शामिल है ... मेरा विश्वास करो, मैं पहले वहां गया हूं :-)

इस समस्या को नामांकित इकाई पहचान कहा जाता है। स्थान 3 सबसे अध्ययन कक्षाओं (व्यक्ति और संगठन के साथ) में से एक है। स्टैनफोर्ड एनएलपी में एक ओपन सोर्स जावा कार्यान्वयन है जो बेहद शक्तिशाली है: http://nlp.stanford.edu/software/CRF-NER.shtml

आप आसानी से अन्य प्रोग्रामिंग भाषाओं में कार्यान्वयन पा सकते हैं।

+0

मैं ट्वीट्स टेक्स्ट से स्थानों को निकालने का प्रयास कर रहा हूं। प्रति सेकेंड की उच्च मात्रा में ट्वीट्स को ध्यान में रखते हुए, मुझे लगता है कि धीमा होगा। सही? –

+0

सं।प्रशिक्षण धीमा और स्मृति उपभोग करने वाला है, लेकिन रनटाइम पर यह बेहद कुशल है। – Blacksad

1

अपने सभी मान्य स्थानों को एक क्रमबद्ध सूची में रखें। यदि आप मामले-असंवेदनशील तुलना करने की योजना बना रहे हैं, तो सुनिश्चित करें कि आपकी सूची का मामला पहले से ही सामान्यीकृत है।

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

संभावित समस्या: "न्यूयॉर्क", "तीसरी स्ट्रीट", "पीपुल्स रिपब्लिक ऑफ चाइना" जैसे बहु-शब्द स्थान। शायद यह सब कुछ लेता है, हालांकि, की स्थिति को पहले नया शब्द सहेजना है, यदि आपको लगता है कि आपका भाई आपको एक (संभव!) बहु-शब्द परिणाम की ओर ले जाता है। फिर, यदि पूर्ण तुलना विफल हो जाती है - संभवतः कई शब्द बाद में - आपको बस इतना करना है कि आपने पिछले एक शब्द के साथ वापस लौटाया है, जहां आपने शुरू किया था।

"शब्द" क्या है: जब आप अपनी स्थान सूची तैयार कर रहे हैं, तो सभी अक्षरों की एक सूची बनाएं जो स्थानों के अंदर दिखाई दे सकती हैं। केवल वाक्यांश जो इस सूची के पात्र होते हैं उन्हें वैध 'शब्द' माना जा सकता है।

+0

एक अन्य संभावित समस्या देखने की सलाह देते हो सकता है एक बहु-शब्द स्थान के पहले भाग अपने आप में एक स्थान हो सकता है। उदाहरण के लिए, "बर्लिन" बनाम "बर्लिन हाइट्स, ओएच"। – usr2564301

0

ट्वीट्स कितनी तेजी से आ रही हैं? जैसा कि यह पूरी ट्विटर आग नली या कुछ फ़िल्टरिंग प्रश्न है? थोड़ा और परिष्कृत दृष्टिकोण, जो आपने वर्णन किया है उसके समान है एक एनएलपी उपकरण का उपयोग कर रहा है जो एक राजपत्र में एकीकृत है। बहुत कम एनएलपी उपकरण ट्विटर दरों तक बने रहेंगे, और बहुत कम कुछ लीटर बोलने के कारण ट्विटर के साथ बहुत अच्छे हैं। राजपत्र में प्रदर्शन लॉक अप को सीमित करने के लिए एनएलपी को आपकी आवश्यकताओं के आधार पर सटीकता या याद करने के लिए ट्यून किया जा सकता है। मैं Rosoka (यह भी अमेज़न एडब्ल्यूएस के माध्यम से Rosoka Cloud) और GeoGravy

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