प्राकृतिक भाषा प्रसंस्करण के लिए जावा या पायथन [बंद]


112

मैं जानना चाहूंगा कि प्राकृतिक भाषा प्रसंस्करण के लिए कौन सी प्रोग्रामिंग भाषा बेहतर है। जावा या पायथन ? मुझे इसके बारे में बहुत सारे सवाल और जवाब मिले हैं। लेकिन मैं अभी भी चुनने में खो गया हूं कि किसका उपयोग करना है।

और मैं जानना चाहता हूं कि कौन सी एनएलपी लाइब्रेरी जावा के लिए उपयोग करना है क्योंकि बहुत सारे पुस्तकालय (लिंगपाइप, गेट, ओपनएनएलपी, स्टैंडफोर्डएनएलपी) हैं। पायथन के लिए, अधिकांश प्रोग्रामर एनएलटीके की सलाह देते हैं।

लेकिन अगर मुझे कुछ उपयोगी जानकारी प्राप्त करने के लिए असंरचित डेटा (बस मुक्त सादे अंग्रेजी पाठ) से कुछ टेक्स्ट प्रोसेसिंग या सूचना निष्कर्षण करना है, तो सबसे अच्छा विकल्प क्या है? जावा या पायथन? उपयुक्त पुस्तकालय?

अपडेट किया गया

मैं जो करना चाहता हूं वह असंरचित डेटा से उपयोगी उत्पाद जानकारी निकालना है (जैसे कि उपयोगकर्ता मोबाइल या लैपटॉप के बारे में विज्ञापन के विभिन्न रूपों को मानक अंग्रेजी भाषा के साथ नहीं बनाते हैं)


47
मैं नफरत करता हूं कि एसओ पर इस तरह के सवालों का यहां स्वागत नहीं है। मुझे लगता है कि इरादा पवित्र युद्धों को रोकने का था, लेकिन यह सामग्री आईएमओ में योगदान देता है।
L0j1k

2
यदि यह कहा जाता है कि "अग्रणी जावा और पायथन एनएलपी पुस्तकालय और उनके सापेक्ष ताकत क्या हैं?" शायद यह है कि यह हल करती है? समय के साथ उत्तर बदलता है, लेकिन मुझे इस तरह के सवाल भी बहुत उपयोगी लगते हैं।
स्कॉट स्मिथ

5
मैं भी चाहता हूं कि एसओ पर इस तरह के सवालों का स्वागत किया जाए। मैंने हाल ही में पायथन बनाम आर में एनएलपी की ताकत का सर्वेक्षण करने की कोशिश की, और इसे तुरंत गोली मार दी गई। अपने प्रोजेक्ट को सही भाषा में फ्रेम करने की कोशिश करने वालों के लिए बीनो नहीं।
Ksofiac

जवाबों:


133

एनएलपी के लिए जावा बनाम पायथन बहुत अधिक प्राथमिकता या आवश्यकता है। कंपनी / परियोजनाओं के आधार पर आपको एक या दूसरे का उपयोग करने की आवश्यकता होगी और जब तक आप एक परियोजना का नेतृत्व नहीं कर रहे हैं, तब तक बहुत विकल्प नहीं हैं।

के अलावा NLTK(www.nltk.org), वहाँ वास्तव में पाठ संसाधन के लिए अन्य पुस्तकालयों हैं python:

(अधिक जानकारी के लिए, https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search देखें )

Javaदूसरों के लिए , लेकिन यहाँ एक और सूची है:

यह मूल स्ट्रिंग प्रसंस्करण के लिए एक अच्छी तुलना है, http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html देखें

GATE vs UIMA vs OpenNLP की एक उपयोगी तुलना, https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version4 देखें

यदि आप अनिश्चित हैं, जो कि एनएलपी के लिए जाने वाली भाषा है, तो व्यक्तिगत रूप से मैं कहता हूं, "कोई भी भाषा जो आपको वांछित विश्लेषण / आउटपुट देगी", प्राकृतिक भाषा प्रसंस्करण के लिए कौन सी भाषा या उपकरण देखें ?

यहाँ हाल ही में (2017) एनएलपी टूल्स का एक बहुत ही सुंदर संस्करण है: https://github.com/alvations/awesome-community-curated-nlp

एनएलपी उपकरण (2013) की एक पुरानी सूची: http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp


भाषा प्रसंस्करण टूल के अलावा, आपको पाइपलाइनों machine learningमें शामिल करने के लिए बहुत अधिक टूल की आवश्यकता होगी NLP

वहाँ में एक पूरी श्रृंखला है Pythonऔर Java, और फिर से एक बार यह वरीयता पर निर्भर है और पुस्तकालयों उपयोगकर्ता के अनुकूल पर्याप्त हैं या नहीं:

अजगर में मशीन सीखना पुस्तकालय:

(अधिक जानकारी के लिए, https://pypi.python.org/pypi?%3Aaction=search&term=machine+learning&submit=search देखें )


हाल ही में (2015) एनएलपी में सुनामी की गहरी सीख के साथ , संभवतः आप इस पर विचार कर सकते हैं: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

मैं गैर-पक्षपात / तटस्थता से बाहर गहन शिक्षण उपकरणों को सूचीबद्ध करने से बचूँगा।


अन्य Stackoverflow प्रश्न जो NLP / ML टूल के लिए भी पूछे गए हैं:


1
एनएलपी और एमएल टूल्स के बारे में बहुत सारी जानकारी देने के लिए धन्यवाद
जिन लिंग

42

सवाल बहुत खुला हुआ है। कहा कि, एक का चयन करने के बजाय, नीचे दी गई भाषा के आधार पर एक तुलना है जिसे आप उपयोग करना चाहते हैं (क्योंकि दोनों भाषाओं में अच्छी लाइब्रेरी उपलब्ध हैं)।

अजगर

पायथन के संदर्भ में, आपको सबसे पहले जिस जगह को देखना चाहिए वह है पायथन नेचुरल लैंग्वेज टूलकिट । जैसा कि वे अपने विवरण में ध्यान देते हैं, एनएलटीके मानव भाषा डेटा के साथ काम करने के लिए पायथन कार्यक्रमों के निर्माण के लिए एक अग्रणी मंच है। यह वर्डनेट जैसे 50 से अधिक कॉर्पोरा और लेक्सिकल संसाधनों के साथ-साथ वर्गीकरण, टोकन, स्टेमिंग, टैगिंग, पार्सिंग और अर्थ संबंधी तर्क के लिए टेक्स्ट प्रोसेसिंग लाइब्रेरी के लिए आसान-से-आसान इंटरफेस प्रदान करता है।

कुछ उत्कृष्ट कोड भी हैं जिन्हें आप Google की प्राकृतिक भाषा टूलकिट परियोजना से उत्पन्न कर सकते हैं जो कि पायथन आधारित है। आप GitHub पर उस कोड का लिंक यहां पा सकते हैं ।

जावा

देखने के लिए पहला स्थान स्टैनफोर्ड का प्राकृतिक भाषा प्रसंस्करण समूह होगा । वितरित किए गए सभी सॉफ़्टवेयर जावा में लिखे गए हैं। सभी हाल के वितरणों के लिए Oracle जावा 6+ या OpenJDK 7+ की आवश्यकता होती है। वितरण पैकेज में कमांड-लाइन इनवोकेशन, जार फाइलें, एक जावा एपीआई और स्रोत कोड के घटक शामिल हैं।

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


9
बहुत बढ़िया जवाब। मैं वास्तव में यह नहीं समझता कि इस प्रकार के प्रश्नों को यहाँ क्यों देखा गया है। +1
L0j1k

8
मैं पूरी तरह से सहमत हूँ। जो सवाल पूछा गया, वह सामान्य है। उस ने कहा, ये ठीक प्रकार के प्रश्न हैं जो मैं अक्सर खुद का सामना कर पाता हूं, खासकर जब मैं एक क्षेत्र में नया हूं।
नथानिएल पायने

1
जावा आधारित पुस्तकालयों और औजारों के संदर्भ में, एक और महान जिसे आप देख सकते हैं वह है लिंगपाइप। alias-i.com/lingpipe
नथानिएल पायने

2
@NathanielPayne: आपके सुझावों के लिए बहुत बहुत धन्यवाद। यह मुझे एनएलपी शुरू करने के लिए कुछ गाइड देता है।
जिन लिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.