Nltk: Tingkatkan tokenisasi Multi Word Expressions dengan memasukkan "python partitioner"

Dibuat pada 11 Des 2018  ·  9Komentar  ·  Sumber: nltk/nltk

Saya menduga bahwa @jakerylandwilliams & @andyreagan https://github.com/jakerylandwilliams/partitioner dapat secara signifikan meningkatkan kualitas tokenisasi NLTK, khususnya dalam hal MWE (Multi Word Expressions).

@NeelShah18 baru-baru ini portingnya ke Python 3:

https://github.com/jakerylandwilliams/partitioner/pull/7

Jadi, memasukkannya ke dalam NLTK tampaknya cukup mudah.

Untuk informasi lebih lanjut tentang pendekatan yang digunakan di sana, lihat di sini:

https://noisy-text.github.io/2017/pdf/WNUT01.pdf

Dan di sini:
https://arxiv.org/abs/1710.07729

Ini berlisensi Apache 2.0, jadi lisensinya juga tampak kompatibel.

enhancement nice idea tokenizer

Komentar yang paling membantu

@alvations dan @NeelShah18 , saya setuju bahwa menarik keluar dan mengemas ulang gazetteer dan sumber daya segmentasi MWE per struktur NLTK dan norma pengkodean akan paling masuk akal untuk integrasi. Ada beberapa model dan utilitas di dalam https://github.com/jakerylandwilliams/partitioner dan yang mungkin paling cocok untuk NLTK disebutkan di bagian atas utas oleh @no-identd:

https://noisy-text.github.io/2017/pdf/WNUT01.pdf

Jika ini menarik, saya pasti dapat membantu pelaksanaan beberapa tugas yang diperlukan.

Semua 9 komentar

Catatan kecil/tambahan tentang/untuk ini, karena:
a) Saya lupa menyebutkannya di posting awal; dan
b) tampaknya layak disebutkan:
Python Partitioner sudah menggunakan NLTK.

Terima kasih telah menyarankan partisi; Saya belum pernah melihatnya. Berdasarkan makalah, sepertinya ia melakukan segmentasi MWE dengan mengandalkan probabilitas n-gram data pelatihan berlabel MWE dan sumber daya leksikal yang besar (terutama diambil dari Wiktionary/Wikipedia). Tidak seperti kebanyakan pendekatan statistik, ini menghindari komputasi yang mahal, pada dasarnya menunda sebagian besar pekerjaan ke penghitungan frekuensi dan pencarian kamus. Alat ini mendukung 18 bahasa PARSEME, termasuk bahasa Inggris dan berbagai bahasa Eropa.

Jika ini akan ditambahkan ke NLTK, seberapa besar seharusnya? Repo partisi adalah> 100MB. Jika ada file data besar, saya berasumsi pengguna harus menggunakan nltk.download() untuk memintanya.

Perlu waktu untuk memuat sumber daya data yang besar ke dalam memori untuk menjalankan sistem—apakah hanya beberapa detik, atau lebih lama?

Perhatikan bahwa ini melampaui "tokenisasi" standar dalam hal unit leksikal ortografis, jadi ini bukan pengganti tokenisasi atau lemmatisasi dasar (#1214).

Sayangnya, saya harus menyampaikan pertanyaan-pertanyaan ini karena keterbatasan waktu & kurangnya pengalaman operasional dengan partisi, setidaknya untuk masa mendatang. Maaf! Tapi mungkin @jakerylandwilliams atau @andyreagan bisa menjawab pertanyaan itu

Terima kasih @no-identd dan @nschneid telah menghubungi kami; Saya senang modul ini menarik. Kami saat ini sedang mengerjakan beberapa peningkatan back-end, data, dan model untuk Python 3. Jika membawa versi saat ini ke nltk masuk akal, saya pikir itu akan cukup mudah untuk diterapkan.

@nschneid , penilaian Anda tentang model itu benar. File data besar dapat memakan waktu beberapa detik; satu-satunya kelambatan pada pemuatan yang saya lihat adalah untuk kumpulan data EN Wikipedia, tetapi sumber daya ini dapat dihilangkan dengan biaya yang relatif kecil untuk kinerja untuk beban instan yang pada dasarnya. Mungkin masuk akal untuk mengatur beban EN default untuk hanya menghilangkan Wikipedia.

Saya senang untuk melanjutkan diskusi dan mengajukan pertanyaan lain.

@jakerylandwilliams @nschneid Jika kita menghilangkan Wikipedia dan bahkan menggunakan pengunduh default oleh nltk maka itu kompatibel dengan python2 dan python3. Saya dapat membantu untuk kemandirian multiplatform (python2 dan python3) dari kode partisi.

Sebenarnya, jika https://github.com/jakerylandwilliams/partitioner sudah menjadi paket yang berfungsi dengan Python, mungkin tidak perlu mem-port/mengimplementasikan kembali kode. Pengguna dapat dengan mudah memilih untuk menggunakan tokenizer langsung dari partisi.

Jika kita menginginkan "barang bagus" seperti MWE, kita dapat mengambil gazetteer dari partisi, entah bagaimana mengemas sumber daya MWE alih-alih mem-porting seluruh repo partisi ke NLTK. Jika pengelola partisi ingin mempertahankan kode dalam NLTK alih-alih dalam paket pypi mereka, maka saya pikir itu sepadan dengan upaya porting kode dari perpustakaan Python pihak ketiga.

@alvations Saya setuju dengan sarannya. Tapi, saya melihat implementasi NLTK kita harus menulis ulang sesuai struktur dan pengujian NLTK. Kami juga membutuhkan kode untuk portabel di python2 dan python3 untuk menjadikannya norma pengkodean perpustakaan NLTK.

@alvations dan @NeelShah18 , saya setuju bahwa menarik keluar dan mengemas ulang gazetteer dan sumber daya segmentasi MWE per struktur NLTK dan norma pengkodean akan paling masuk akal untuk integrasi. Ada beberapa model dan utilitas di dalam https://github.com/jakerylandwilliams/partitioner dan yang mungkin paling cocok untuk NLTK disebutkan di bagian atas utas oleh @no-identd:

https://noisy-text.github.io/2017/pdf/WNUT01.pdf

Jika ini menarik, saya pasti dapat membantu pelaksanaan beberapa tugas yang diperlukan.

🤔

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

alvations picture alvations  ·  4Komentar

ndvbd picture ndvbd  ·  4Komentar

zdog234 picture zdog234  ·  3Komentar

stevenbird picture stevenbird  ·  4Komentar

mwess picture mwess  ·  5Komentar