Apa yang dibutuhkan di awal:
- sebuah program "memancing" nama-nama unik produk dalam industri tertentu dari teks mentah dalam bahasa Rusia. Teks mentah - teks yang ditulis seseorang, hanya mengekspresikan pemikirannya dan tidak peduli tentang pembentukan atau pemilihan daftar kata-kata;
- daftar kata yang diperoleh secara otomatis;
- pemrosesan manual atau otomatis minimal untuk mengonversi daftar menjadi satu set tagar atau kata kunci untuk teks.
Saya percaya bahwa banyak orang menghadapi masalah secara implisit setiap hari, setelah menulis atau menganalisis artikel, memposting, berkomentar, mencatat, melaporkan, dll. Jadi dengan pekerjaan saya, saya harus berurusan dengan masalah ini beberapa kali sehari. Oleh karena itu, dapat dikatakan bahwa "kemalasan" menuntun saya pada gagasan otomatisasi, dalam arti kata yang baik.
Sekarang, ketika saya menulis artikel ini, idenya telah dipertahankan, tetapi kumpulan data dari hasil akhir telah banyak berubah:
- bukan kata-kata yang dipilih, tetapi frasa kunci, termasuk kata-kata;
- daftar ekspresi kunci ditandai dengan 16 penanda berbeda;
- semua kata dari teks (termasuk yang non-kunci) adalah lemmatized - diberikan dalam bentuk awal atau disatukan dalam format yang ditampilkan;
- setiap kata dalam teks memiliki analitik tambahan terkait dengan posisi dalam teks dan jumlah pengulangan.
Perangkat lunak Nrlpk (Natural Russian Language Processing by the Keys) menyiapkan data untuk:
- analisis teks dari berbagai topik dan industri yang tidak terbatas (pengembangan dan pengujian dilakukan berdasarkan bahan kompleks industri dan militer-industri - Kompleks Industri Militer);
- rubrik otomatis, klasifikasi, katalogisasi, materialisasi bahan (situs online);
- memantau dan memfilter berdasarkan konten dengan pengaturan respons sistem (layanan dan sistem keamanan dalam loop tertutup atau online);
- markup teks (AI) multilayer.
Kualitas
Agar tidak menarik seluruh artikel mereka yang hanya percaya pada angka, dan tidak dalam kata-kata dan mereka yang mengharapkan kualitas absolut dan tidak menerima yang lain ...
Kualitas sampel berada dalam kisaran 95-100% saat menguji artikel yang ukurannya tidak melebihi 3.500 kata. Penyebaran terkait dengan kualitas dan kompleksitas presentasi. Berikut adalah
contoh dari salah satu artikel yang berpartisipasi dalam pengujian, dan inilah
hasil analisis otomatisnya .
Perlu untuk menghapus sekitar 7-10% dari interval kualitas yang diperoleh, yaitu tingkat kualitas aktual kemungkinan akan 85-93%. Ini disebabkan oleh kenyataan bahwa:
- selama proses pengujian, persyaratan untuk perubahan data yang dipilih, yang saya tidak perhatikan sebelumnya dan saya percaya bahwa saya tidak melihat semuanya sekarang;
- ketika melakukan rekonsiliasi secara manual, ada pendapat subjektif saya bahwa apa yang sebenarnya dapat dikenali sebagai kunci dalam sebuah artikel dan apa yang tidak - dan kemungkinan besar tidak cocok dengan kunci dengan kunci dengan pendapat para penulis artikel.
Daftar lengkap artikel yang diuji, dan statistik terperinci hasil
dapat ditemukan di GitHub .
Apa yang secara khusus mempengaruhi kualitas hasil di setiap artikel dapat
ditemukan di file Alasan di GitHub .
Cara membaca hasilnya
Di setiap folder untuk artikel tertentu yang dianalisis, ada 5 file dengan set data di Unicode:
- words.csv - daftar kata yang relevan, termasuk daftar kata-kata yang tidak dikenal;
- keys.csv - daftar kata kunci, sekarang berisi, selain ekspresi yang ditandai, juga kata-kata yang diulang dalam teks setidaknya beberapa kali - dalam hal ini, setidaknya 4 kali;
- garbage.csv - daftar kata-kata yang tidak dikenal;
- descr_words.csv - deskripsi (statistik) ke daftar semua kata teks;
- descr_keys.csv - deskripsi (statistik) ke daftar kata kunci;
Dan reason_quality.txt adalah daftar (opsional) ekspresi dari artikel yang dipilih secara manual dan melewatkan kunci, atau mendapat kesalahan (menurut penulis nrlpk).
Anda dapat
mempelajari cara membaca file-file ini
dari file
Legend di GitHub .
nrlpk memungkinkan Anda untuk mendapatkan kumpulan data dalam salah satu format berikut:
- Bingkai Data Pandas (default);
- Kamus Python;
- JSON
- File CSV.
Metodologi pengujian
- Analisis teks perangkat lunak (otomatis).
- Identifikasi manual (dengan mata), manual (menandai) dari ekspresi kunci dan rekonsiliasi dari daftar ekspresi kunci yang diterima, dengan daftar yang diterima secara otomatis.
- Perhitungan persentase kualitas : jumlah ekspresi yang terlewat atau salah eja + jumlah kata dalam sampah, hingga jumlah total kata dalam teks.
Alat-alatnya
nrlpk ditulis dalam Python 3.7.0. Sudah dalam proses pengembangan perangkat lunak nrlpk di masa depan, dua persyaratan wajib muncul:
- pilih ekspresi, bukan kata-kata - termasuk kata-kata;
- keberadaan kamus istilah industri khusus.
Persyaratan ini mempersoalkan penggunaan NLTK dan pymorphy2, yang dapat memecahkan beberapa tantangan.
Untuk menghilangkan keragu-raguan, seleksi manual dibuat dari teks-teks pilihan dari media yang diambil dari agregator berita berbahasa Rusia terbesar mengenai subjek kompleks industri militer -
VPK.Name . Analisis pelabelan diungkapkan:
- seluruh lapisan data yang tidak boleh dikenakan tokenisasi dan lemasi kata demi kata;
- ketidakmungkinan dalam banyak kasus tokenization sesuai dengan kalimat untuk transformasi serius dari teks untuk memperbaiki ketidakakuratan tata bahasa yang penulis izinkan dalam lebih dari 80% artikel. Ketidakakuratan ini sama sekali tidak mempengaruhi persepsi teks oleh seseorang, tetapi sangat signifikan mempengaruhi persepsi dan interpretasi teks tersebut oleh mesin.
Selain itu, sudah pada tahap ini, kebutuhan untuk mengumpulkan dan menyimpan berbagai informasi statistik tentang objek yang sedang diproses menjadi jelas.
Mengingat faktor-faktor ini,
Pandas dipilih sebagai paket dasar untuk bekerja dengan data, yang, selain tugas-tugas yang dijelaskan di atas, memungkinkan untuk melakukan lemmatization batch.
Setelah menganalisis kamus yang tersedia dari bahasa Rusia,
OpenCorpora diambil sebagai dasar,
yang , omong-omong, juga digunakan dalam pymorphy2.
Itu mengalami transformasi menjadi bentuk yang nyaman untuk bekerja dengan Panda, setelah kamus-kamus berikut dipilih darinya:
- besar - seluruh basis kata;
- kata-kata buruk - kata-kata yang dikecualikan dari analisis teks karena kurangnya signifikansi;
- khusus - kamus kata-kata khusus (industri). Nama yang tepat tidak termasuk dalam kamus: nama, nama, nama keluarga, alamat, produk, produk, perusahaan, orang, dll. Ini adalah keputusan yang mendasar dan berdasarkan informasi, karena dalam industri / arahan apa pun, pendekatan semacam itu akan membutuhkan pemantauan dan penambahan kamus manual secara terus-menerus, yang meruntuhkan gagasan memfasilitasi kerja melalui otomatisasi;
Kamus disimpan unicode dalam format teks sederhana untuk manajemen dari program eksternal apa pun.
Karena dasar untuk kamus dalam nrlpk dan pymorphy2 adalah identik, penunjukan
bagian-bagian ucapan (gramme) identik. Jumlah marker (tata bahasa non-standar) saat ini adalah 16 dan sebagian besar dari mereka, jika ekspresi yang ditandai tidak terdiri dari beberapa kata, selain marker, juga memiliki penunjukan bagian bicara dari tata bahasa dasar. Penandaan marker yang cocok (gram non-standar) dengan pymorphy2 identik, khususnya:
- NUMB adalah angka;
- ROMN adalah angka Romawi;
- UNKN - token tidak dapat diuraikan.
Omong-omong, untuk ekspresi yang berisi data numerik, dalam nrlpk, selain NUMB dan ROMN, marker berikut juga digunakan:
- NUSR - ekspresi berisi satu atau lebih data numerik;
- MATEMATIF - Ekspresi berisi rumus matematika.
Apa itu ekspresi kata kunci multi-kata? Misalnya, NUSR:
- jika teksnya 25 Februari 2020, maka ekspresi kuncinya adalah 25 Februari 2020, dengan lemma "02.25.2020", tata bahasa "NUSR" dan penanda NUSR;
- namun, jika teks mengatakan "25 Februari 2020", ekspresi kuncinya adalah "25 Februari 2020", dengan lemma "2f2g", tata bahasa "WIQM" dan penanda WIQM;
- jika teks berisi 25 ton, maka pada kunci kita akan melihat "25 ton", dengan lemma "2t", di mana "NUSR" juga akan digunakan sebagai gramme dan marker.
Mengapa Anda perlu menjelaskan kata-kata dan kunci
Pada awalnya, perlu untuk memeriksa operasi algoritma nrlpk - apakah kata-kata hilang, jika ada kesatuan yang tidak perlu, berapa proporsi kunci dalam teks, dll.
Tetapi ketika perangkat lunak itu sedang di-debug, beberapa "keteraturan" mulai muncul, identifikasi yang, sebagai tugas, tidak diajukan ke nrlpk:
- identifikasi kata-kata yang ditulis dengan kesalahan ejaan;
- identifikasi teks dengan gaya buruk, buruk -%> 35% (pengamatan praktis sebagai hasil pengujian);
- identifikasi teks target (dengan fokus sempit, penempatan jelas) - skeys-% <5 tanpa kunci numerik (pengamatan praktis sebagai hasil pengujian);
- identifikasi teks yang tidak tunduk pada topik industri - langit-% <1.
Analisis kombinasi timbal balik dari indikator statistik dapat menjadi tidak kalah menarik, misalnya:
- identifikasi teks "cakupan luas" - kunci -%> 45% dengan ukeys-% cenderung ke kunci-%.
Mengapa semuanya ditulis
nrlpk dalam keadaan siap untuk bekerja dengan indikator kualitas saat ini untuk memproses teks-teks Rusia, tetapi tidak disediakan sebagai layanan. Penulis memiliki arah pengembangan yang jelas dan dapat dipahami untuk meningkatkan persentase kualitas dan menstabilkan persentase ini. Untuk mengembangkan tugas ini, seorang investor strategis dan / atau pemegang hak cipta baru harus siap untuk pengembangan lebih lanjut dari proyek ke tujuan yang dinyatakan.
PS
Label untuk teks ini (awal - pada Habré sedikit berubah) teks (tercantum di bawah) secara otomatis dihasilkan oleh
nrlpk dengan parameter berikut:
- Jangan mengenali sebagai kunci ekspresi dengan data numerik;
- kenali sebagai kunci kata-kata yang diulang dalam teks setidaknya 8 kali.
Data terperinci tentang hasil pemrosesan nrlpk dari artikel ini dapat ditemukan
di GitHub .
Diposting oleh:
avl33