agrep dengan hukuman bias arah


16

Saya menggunakan tre-agrep (manpage) , sebuah implementasi dari agrep (manpage) , untuk melakukan pencocokan pola perkiraan. Utilitas ini mencari kecocokan berdasarkan jarak Levenshtein , dan pengguna dapat mengonfigurasi penalti yang diterapkan untuk substitusi, penyisipan, atau pengeditan penghapusan.

Namun, saya ingin menerapkan bobot secara berbeda di seluruh panjang kueri, yaitu dengan bobot yang lebih rendah untuk penghapusan di awal (ujung kiri) kueri daripada di kanan. The manhalaman untuk utilitas ini tidak menunjukkan bahwa seperti tingkat kontrol adalah mungkin.

Apakah ada alat baris perintah lain di mana perkiraan pencocokan dengan kontrol yang lebih baik atas hukuman ketidakcocokan mungkin?


5
AFAIK, agrep adalah satu-satunya. Saya terkejut Anda bahkan tahu tentang itu, mengingat ketidakjelasan relatifnya di dunia UNIX (yang terlalu buruk). Secara teori, Anda dapat menyesuaikan bobot ini dalam kode sumber, tetapi apakah itu praktis atau tidak, saya tidak tahu. Sudahkah Anda mencoba menghubungi pembuat alat atau bahkan kertas asli yang menjadi dasarnya? Pikiran Anda, mereka mungkin kentut tua sekarang :)
Otheus

3
@Otheus Old kentut masih bisa menulis kode ;-)
Kusalananda

Tidak akan sulit untuk menulis utilitas yang sesuai Levenshtein dengan memasukkan / menghapus / mengganti biaya yang didefinisikan sebagai ekspresi dalam Python atau Awk. Bagian yang membosankan, sungguh, adalah semua opsi baris perintah yang mungkin. Jika OP bersedia menunjukkan baris perintah yang khas, dan memberi tahu opsi mana yang agrepsebenarnya mereka butuhkan, saya mungkin bisa menyiapkan sesuatu. Menghitung jarak Levenshtein dari dua string sangat mudah, sungguh. Saya sarankan skrip shell melilit doa GNU awk.
Nominal Animal

Jawaban:


1

Tidak. Kustomisasi semacam itu berada di luar lingkup alat Linux dan menjadi lingkup penulisan kode Anda sendiri. Menggunakan bahasa tingkat tinggi yang populer (Java, JavaScript, Python, Perl) akan menggunakan sedikit lebih banyak memori daripada C dan menjadi sedikit lebih lambat untuk bahasa skrip tetapi kemungkinan akan diabaikan untuk kasus penggunaan Anda. Jadi tanyakan kembali pada stackoverflow dengan detail persis yang Anda butuhkan dan seseorang mungkin menawarkan satu liner.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.