Nltk: Mengintegrasikan dukungan vektor kata untuk NLTK

Dibuat pada 7 Agu 2018  ·  19Komentar  ·  Sumber: nltk/nltk

Word Vectors saat ini tidak didukung oleh NLTK.

Mengintegrasikan mereka akan menjadi langkah yang sangat baik karena kita sering berurusan dengan mereka dalam pekerjaan kita sehari-hari. Ini kemudian akan membuat NLTK menjadi one stop untuk lebih banyak jenis tujuan NLP

Berikut adalah daftar kata-vektor yang dapat diintegrasikan dengan NLTK :
kata2vec
Sarung tangan

Jika masalah ini berjalan, maka saya dapat membuat PR.

Komentar yang paling membantu

Apakah ada cara untuk mengintegrasikan vektor kata tanpa mereplikasi potongan besar gensim?

Semua 19 komentar

@alvations , @stevenbird tolong beri komentar dan berikan pandangan Anda

Apakah ada cara untuk mengintegrasikan vektor kata tanpa mereplikasi potongan besar gensim?

@stevenbird , maksud Anda tanpa mengimpor paket gensim?

Bisakah Anda menjelaskan apa yang Anda usulkan untuk dilakukan?

Gensim luar biasa. Tentang satu-satunya hal yang umumnya disediakan oleh nltk bahwa Gensim kurang adalah hal-hal manajemen dataset, yang mungkin menjadi tujuan 53X? Nltk bisa menambahkan sesuatu seperti ini. Sebenarnya saya telah menerapkan sesuatu dari gaya ini dalam proyek saya sendiri, finntk: https://github.com/frankier/finntk/tree/master/finntk/emb (sedikit berbeda dari nltk - ia menarik kumpulan data "di- tuntutan"). Untuk vektor kata biasanya ada langkah ekstra untuk mengonversi ke format KeyedVector untuk tampilan cepat dari disk.

Namun, saya tidak yakin apakah nltk adalah rumah terbaik untuk itu. Ada beberapa orang yang mencoba memulai "pengelola paket dataset". Lihat manifesto: http://juan.benet.ai/data/2014-03-04/the-case-for-data-package-managers , dan sebuah contoh: https://quiltdata.com/ -- Saya ingin tahu jika ada kemungkinan menggunakan sesuatu seperti ini?

Dalam hal repositori vektor kata. Ada juga: http://vectors.nlpl.eu/repository/

@stevenbird , mengutip dari dokumen SpaCy .:

SpaCy mampu membandingkan dua objek, dan membuat prediksi seberapa mirip mereka. Memprediksi kesamaan berguna untuk membangun sistem rekomendasi atau menandai duplikat. Misalnya, Anda dapat menyarankan konten pengguna yang mirip dengan apa yang sedang mereka lihat, atau memberi label tiket dukungan sebagai duplikat jika sangat mirip dengan yang sudah ada.

>

Kami dapat membangun dan mengintegrasikan sesuatu seperti ini di NLTK, dan saya pikir ini mungkin PR yang tepat di mana kami mulai mengintegrasikan fungsionalitas DL ke NLTK.

Kami dapat membangun sesuatu yang serupa di NLTK dan untuk itu kami mungkin perlu menambahkan penyisipan kata yang telah dilatih sebelumnya di NL

Ide saya mungkin sangat kasar, tetapi dengan sedikit penyempurnaan dari kalian, saya pikir kita bisa membuat sesuatu dari ini ..

@53X apa yang sebenarnya Anda usulkan?

Katakanlah untuk memulai menggabungkan sesuatu seperti kalimat2vec, doc2vec dll sehingga diberikan jumlah yang sebanding kita dapat mengatakan betapa miripnya mereka.

Saya pikir Anda menyarankan sesuatu seperti https://radimrehurek.com/gensim/models/keyedvectors.html ?


Nilai 2 sen saya. Tanpa peretasan kode cython atau c, kita tidak akan dapat mencapai kecepatan gensim / spacy . Kecuali ada beberapa cara untuk membedakan kode antara NLTK dan gensim, tidak ada gunanya dua perpustakaan terlalu mirip.

Juga, kami belum menemukan saluran distribusi yang baik untuk manajemen data.

Secara pribadi, (hidup dan mati selama beberapa waktu), saya telah mencoba berbagai gaya memformat ulang nltk.corpus tetapi saya belum menemukan desain API yang memiliki Jaringan Pengiriman Konten (CDN) yang sesuai yang dapat menangani manajemen data dengan elegan.

Saya telah menjelajahi Kaggle Datasets, dropbox dan zendoo dan bahkan distribusi data sebagai paket PyPI. Tapi selalu ada batasnya

  • seberapa tersedia datanya? Yaitu apakah perlu pengguna untuk mendaftar akun? berapa banyak lompatan/langkah yang harus diambil sebelum pengguna dapat memperoleh data yang akan dibaca oleh nltk.corpus . Sampai sekarang, tidak ada yang mengalahkan kesederhanaan menarik dari file zip github.

  • bagaimana cara melacak prioritas data? Yaitu ketika data diperbarui, apakah ada versi? Bagaimana kita kembali untuk melacak perubahan dan mungkin memiliki semacam mekanisme git menyalahkan untuk men-debug apa yang salah jika itu terjadi?

  • berapa banyak dukungan yang akan diberikan CDN? Selalu ada kasus batas bandwidth untuk file up/download dan juga batas ukuran penyimpanan. Saya pikir yang terakhir murah tapi yang sebelumnya sulit.


Saya yang lain senilai 2 sen. Saya pikir kami membutuhkan saluran distribusi yang lebih baik untuk kumpulan data NLTK yang ada bahkan sebelum berpikir tentang mendistribusikan ulang penyisipan kata untuk dibaca ke dalam API Pythonic.

Jika ada yang tertarik untuk benar-benar menyelesaikan masalah distribusi data dan mendedikasikan waktu untuk itu sebagai langkah awal untuk memasukkan penyisipan kata/doc, ping di sini dan saya akan menghubungi Anda melalui email untuk membahas hal ini.

@alvations , masalah ini terdengar menarik dan jika itu bukan masalah bagi kalian semua, bisakah saya menganggapnya sebagai tantangan?

Saya minta maaf kepada kalian semua jika saran berikut terdengar bodoh atau tidak masuk akal.

Saya sebenarnya berpikir untuk membuat repositori terpisah (di dalam NLTK) untuk semua kumpulan data ini. Saya pikir mungkin untuk mengatasi masalah yang disebutkan @alvations . Yang terpenting, kemudian kita dapat langsung mengunduh (mengkloning) sesuatu yang baru (set data atau model yang telah dilatih sebelumnya seperti GloVe ) ke mesin lokal menggunakan kode python sederhana (itulah yang saya pikirkan ... Saya mungkin tidak benar :P ). Juga masalah masuk yang disebutkan di atas oleh pengguna dapat dihindari

Ups, maaf .... ternyata NLTK sudah memiliki repositori bernama nltk_data .

@alvations Apakah keberatan Anda berlaku untuk Quilt?

@alvations bagaimana dengan memposting komentar Anda tentang kumpulan data ke nltk-dev.

Mari kita lanjutkan konversi pada distribusi dataset di https://groups.google.com/forum/?hl=id#!topic/nltk -dev/LjThWkAthwc


@53X tidak ada saran bodoh/tidak masuk akal, tinggal bagaimana kita membuatnya konstruktif dan mengetahui apa langkah selanjutnya =)

@frankier Saya tidak terbiasa dengan data Quilt tetapi sepertinya ruang potensial untuk mendistribusikan data.

Menutup masalah tidak aktif.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat