Saya ingin tahu bahasa pemrograman mana yang lebih baik untuk pemrosesan bahasa alami. Java atau Python ? Saya telah menemukan banyak pertanyaan dan jawaban tentang hal itu. Tapi saya masih bingung memilih mana yang akan digunakan.
Dan saya ingin tahu library NLP mana yang akan digunakan untuk Java karena ada banyak library (LingPipe, GATE, OpenNLP, StandfordNLP). Untuk Python, kebanyakan programmer merekomendasikan NLTK.
Tetapi jika saya akan melakukan pemrosesan teks atau ekstraksi informasi dari data tidak terstruktur (hanya teks bahasa Inggris biasa yang dibentuk bebas) untuk mendapatkan beberapa informasi yang berguna, apa pilihan terbaik? Java atau Python? Perpustakaan yang cocok?
Diperbarui
Yang ingin saya lakukan adalah mengekstrak informasi produk yang berguna dari data tidak terstruktur (Misalnya, pengguna membuat berbagai bentuk iklan tentang ponsel atau laptop dengan bahasa Inggris yang tidak terlalu standar)
Jawaban:
Java vs Python untuk NLP adalah preferensi atau kebutuhan. Bergantung pada perusahaan / proyek, Anda harus menggunakan satu atau yang lain dan seringkali tidak banyak pilihan kecuali Anda sedang menuju proyek.
Selain
NLTK
(www.nltk.org), sebenarnya ada perpustakaan lain untuk pemrosesan teks dipython
:(untuk lebih lanjut, lihat https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search )
Karena
Java
, ada banyak sekali lainnya, tetapi inilah daftar lainnya:Ini adalah perbandingan yang bagus untuk pemrosesan string dasar, lihat http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html
Perbandingan berguna antara GATE vs UIMA vs OpenNLP, lihat https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version=4
Jika Anda tidak yakin, bahasa mana yang akan digunakan untuk NLP, secara pribadi saya katakan, "bahasa apa pun yang akan memberi Anda analisis / keluaran yang diinginkan", lihat Bahasa atau alat apa yang harus dipelajari untuk pemrosesan bahasa alami?
Berikut ini (2017) alat NLP yang cukup baru: https://github.com/alvations/awesome-community-curated-nlp
Daftar alat NLP yang lama (2013): http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp
Selain alat pengolah bahasa, Anda akan sangat membutuhkan
machine learning
alat untuk dimasukkan ke dalamNLP
pipeline.Ada keseluruhan rentang dalam
Python
danJava
, dan sekali lagi terserah preferensi dan apakah pustaka cukup ramah pengguna:Library Machine Learning di python:
(untuk lebih lanjut, lihat https://pypi.python.org/pypi?%3Aaction=search&term=machine+learning&submit=search )
Dengan tsunami deep learning (2015) baru-baru ini di NLP , Anda mungkin dapat mempertimbangkan: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software
Saya akan menghindari mencantumkan alat pembelajaran mendalam dari non-favoritisme / netralitas.
Pertanyaan Stackoverflow lain yang juga menanyakan fitur NLP / ML:
sumber
Pertanyaannya sangat terbuka. Oleh karena itu, daripada memilih satu, di bawah ini adalah perbandingan bergantung pada bahasa yang ingin Anda gunakan (karena ada pustaka bagus yang tersedia di kedua bahasa).
Python
Dalam hal Python, tempat pertama yang harus Anda lihat adalah Python Natural Language Toolkit . Seperti yang mereka catat dalam deskripsinya, NLTK adalah platform terdepan untuk membangun program Python untuk bekerja dengan data bahasa manusia. Ini menyediakan antarmuka yang mudah digunakan ke lebih dari 50 korpora dan sumber daya leksikal seperti WordNet, bersama dengan rangkaian pustaka pemrosesan teks untuk klasifikasi, tokenisasi, stemming, penandaan, parsing, dan penalaran semantik.
Ada juga beberapa kode bagus yang dapat Anda cari yang berasal dari proyek Toolkit Bahasa Alami Google yang berbasis Python. Anda dapat menemukan tautan ke kode itu di sini di GitHub .
Jawa
Tempat pertama untuk melihat adalah Grup Pemrosesan Bahasa Alami Stanford . Semua perangkat lunak yang didistribusikan di sana ditulis dalam Java. Semua distribusi terbaru membutuhkan Oracle Java 6+ atau OpenJDK 7+. Paket distribusi mencakup komponen untuk pemanggilan baris perintah, file jar, Java API, dan kode sumber.
Opsi hebat lainnya yang Anda lihat di banyak lingkungan pembelajaran mesin di sini (opsi umum), adalah Weka . Weka adalah kumpulan algoritma pembelajaran mesin untuk tugas-tugas penambangan data. Algoritme dapat diterapkan secara langsung ke kumpulan data atau dipanggil dari kode Java Anda sendiri. Weka berisi alat untuk pemrosesan awal data, klasifikasi, regresi, pengelompokan, aturan asosiasi, dan visualisasi. Ini juga cocok untuk mengembangkan skema pembelajaran mesin baru.
sumber