Saya senang mengumumkan rilis paket Python pertama saya, englishidioms
. Paket ini adalah alat yang ampuh untuk mengidentifikasi idiom bahasa Inggris, frasa, dan kata kerja phrasal dalam kalimat, dengan basis data 22.209 ekspresi unik.
Latar Belakang: Sebagai bagian dari proyek pemrosesan bahasa alami pribadi (NLP), saya menemukan perlunya paket Python yang mampu mengenali ekspresi idiomatik dalam kalimat bahasa Inggris. Yang mengejutkan saya, saya tidak dapat menemukan solusi yang cocok, jadi saya memutuskan untuk membangun satu dari awal.
Instalasi: Anda dapat dengan mudah menginstal paket menggunakan PIP: pip install englishidioms
Cara menggunakannya:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
Argumen
sentence
(STR) - Kalimat Bahasa Inggris yang ingin Anda analisis (wajib).limit
(int) - Jumlah hasil maksimum, dipesan oleh Pointing Points (Default: 10).html
(bool) - pengembalian frase dan definisi dalam markup html untuk mempertahankan pemformatan asli dari kamus (default: false).span
(bool) - rentang pencocokan pengembalian dalam kalimat (default: false).entry_range
Bool) - Kamis Kamus Mulai/Akhir Baris untuk debugging (default: false).entry_id
(bool) - ID entri kamus pengembalian di frase.json untuk debugging (default: false).Cara kerjanya (disederhanakan):
Paket ini dikembangkan dengan parsing semua entri kamus di "McGraw-Hill Dictionary of American Idioms and Phrasal Verbs." Dengan menggunakan pustaka Python seperti Python-Docx dan memanfaatkan pemformatan yang telah ditentukan sebelumnya, saya mengekstraksi poin-poin penting dari setiap entri. Poin -poin penting ini termasuk:
Konstanta: Memperbaiki kelas kata yang membentuk inti dari ekspresi idiomatik. Variabel: Kelas variabel kata yang dapat dicocokkan secara luas. Konstanta opsional: Kata atau frasa opsional tambahan dalam ekspresi idiomatik tunggal. Kata kerja: Kata kerja yang biasanya mendahului frasa idiomatik.
Misalnya, pertimbangkan entri kamus:
* Ringer (mati) (untuk seseorang ) Gambar. Sangat mirip dengan penampilan dengan orang lain. (*Biasanya: jadilah ~; terlihat seperti ~.) _ Anda yakin orang mati untuk saudaraku. _ Bukankah dia seorang Ringer untuk Chuck?
Untuk entri ini, kami mengidentifikasi:
Dengan setiap panggilan ke metode 'find_idioms', algoritma pencarian memeriksa poin -poin penting ini dalam 22.209 entri kamus dan mencocokkannya dengan kalimat yang diberikan, mengingat variasi tata bahasa dan urutan kata. Kemudian mengembalikan daftar entri yang cocok.
Pertunjukan:
Saya menguji paket ini pada 40.442 kalimat dari buku, dan mendeteksi entri kamus pencocokan yang benar dalam 91% kasus. Selain itu, waktu eksekusi rata -rata untuk memproses kalimat adalah sekitar 3 detik.
Detail Proyek
Proyek ini dibagi menjadi beberapa langkah kunci:
1. Mendapatkan data:
Kami mulai dengan mendapatkan materi sumber dari "Kamus McGraw-Hill dari Idiom Amerika dan kata kerja phrasal." Anda dapat mengakses salinan sumber daya ini dalam format PDF di sini.
Selanjutnya, kami mengonversi PDF menjadi format yang lebih dapat digunakan, dokumen DOCX yang disebut 'clean-output.docx.' Kami memformat ulang dari tata letak dua kolom ke teks satu kolom. Harap dicatat bahwa detail teknis dari proses konversi ini tidak dibahas dalam dokumentasi ini.
2. Mempersiapkan data:
Kami melewati serangkaian dua belas langkah untuk memproses dan memperbaiki data dari 'clean-output.docx' dan menyimpannya di 'frase.json.' Setiap langkah dikelola oleh modul python tertentu:
Penting untuk menjalankan modul-modul ini dalam urutan yang ditentukan untuk membuat versi final 'frase.json,' yang merupakan database komprehensif untuk data dari 'clean-output.docx.' Pada Windows CMD, Anda dapat menjalankannya secara berurutan menggunakan perintah ini:
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3. Fungsionalitas Inti:
Inti dari proyek ini adalah modul 'l_algorithmm.py'. Ini menggunakan 'frase.json' untuk mencocokkan ekspresi idiomatik dengan kalimat bahasa Inggris. Modul ini sangat penting untuk paket, memungkinkan identifikasi idiom, frasa, dan kata kerja phrasal dalam kalimat.
Inti dari proyek ini adalah modul 'l_algorithmm.py', yang terletak di direktori 'Englishidioms'. Ini menggunakan 'frase.json' untuk mencocokkan ekspresi idiomatik dengan kalimat bahasa Inggris. Menyimpan 'l_algorithmm.py' dan 'frase.json' di direktori 'Englishidioms' melayani tujuan ganda:
Mengurangi ukuran paket: Dengan mengisolasi komponen inti ini, kami membuat paket lebih kecil dalam hal ruang disk. Ini berarti bahwa pengguna hanya perlu menginstal komponen penting, membuat paket lebih ringan dan efisien.
Ketergantungan yang diminimalkan: Kombinasi 'l_algorithmm.py' dan 'frase.json' membutuhkan lebih sedikit dependensi eksternal dibandingkan dengan seluruh paket. Ini menyederhanakan proses pemasangan untuk pengguna akhir, mengurangi kebutuhan untuk menginstal perpustakaan dan persyaratan tambahan yang mungkin tidak diperlukan untuk penggunaan spesifik mereka.
Direktori 'Englishidioms' juga mencakup tiga sumber daya NLTK yang diperlukan untuk menjalankan 'l_algorith.py'
Dengan mengadopsi pendekatan ramping ini, kami memastikan bahwa pengguna dapat dengan cepat dan mudah mengakses fungsionalitas inti paket tanpa overhead yang tidak perlu.
4. Memeriksa dan menguji:
Untuk memastikan kualitas data dan efektivitas algoritma pencarian di 'l_algorithm.py,' kami menggunakan tiga modul tambahan:
Harap dicatat bahwa untuk pengguna akhir yang ingin menggunakan paket ini, hanya diperlukan 'l_algorith.py' dan 'frase.json'. Modul lain terutama untuk pemrosesan data dan validasi selama pengembangan.
Bagaimana berkontribusi:
Seluruh proyek adalah open source dan tersedia di GitHub. Jangan ragu untuk mengeksplorasi kode, melakukan perbaikan, dan berkontribusi pada pengembangannya.
Penafian: Paket Python ini dirancang untuk memberikan pengguna akses ke kumpulan idiom dan kata kerja phrasal seperti yang muncul di "McGraw-Hill Dictionary of American Idioms and Phrasal Verbs." Harap dicatat bahwa paket ini tidak didukung atau disahkan oleh McGraw-Hill Companies, Inc., pemegang hak cipta kamus.
Pemberitahuan Hak Cipta: "Kamus McGraw-Hill dari Idiom Amerika dan Kata Kerja Phrasal" adalah materi yang dilindungi hak cipta, dan penggunaannya tunduk pada istilah hak cipta yang ditetapkan oleh McGraw-Hill Companies, Inc. Paket ini bergantung pada konten yang berasal dari salinan pribadi dari Buku.
Penggunaan yang dimaksudkan: Paket Python ini dimaksudkan hanya untuk tujuan pendidikan dan penelitian, dan untuk penggunaan pribadi, non-komersial. Ini tidak dimaksudkan untuk aplikasi komersial.
Tanggung jawab pengguna: Dengan menggunakan paket Python ini, Anda mengakui bahwa Anda harus mematuhi undang -undang hak cipta dan ketentuan penggunaan yang diuraikan dalam karya asli. Anda diizinkan menggunakan paket ini hanya untuk tujuan pribadi, non-komersial. Setiap aplikasi komersial atau distribusi output paket ini mungkin memerlukan persetujuan tertulis sebelumnya dari penerbit, McGraw-Hill Companies, Inc. sangat dianjurkan agar pengguna yang berniat menggunakan paket ini secara teratur mempertimbangkan untuk membeli salinan pribadi mereka sendiri "Kamus McGraw-Hill dari Idiom Amerika dan Kata Kata Kata Kerja Phrasal" untuk mendukung penulis dan mematuhi undang-undang hak cipta.
Dukung Penulis: Jika Anda bermaksud menggunakan konten paket ini untuk tujuan komersial, saya sangat menyarankan agar Anda mendapatkan izin dan lisensi yang diperlukan dari McGraw-Hill Companies, Inc. untuk mengakses berbagai idiom dan kata kerja phrasal, Membeli salinan pribadi Anda dari "McGraw-Hill Dictionary of American Idioms and Phrasal Verbs."
Tanggung jawab: Pencipta dan pengelola paket Python ini tidak boleh bertanggung jawab atas pelanggaran hak cipta atau penyalahgunaan paket. Pengguna bertanggung jawab untuk mematuhi semua persyaratan hukum dan hak cipta saat menggunakan paket ini.
Saya mendorong penggunaan etis dan sah dari paket ini, menghormati hak -hak pemegang hak cipta dan penulis. Harap gunakan secara bertanggung jawab.