pip install multi-rake Jika instalasi gagal karena kesalahan cld narrowing conversions , maka dapat diinstal dengan
CFLAGS= " -Wno-narrowing " pip install multi-rakeTeks bahasa Inggris, kami tidak menentukan bahasa eksplisit atau daftar stopwords (daftar bawaan digunakan).
from multi_rake import Rake
text_en = (
'Compatibility of systems of linear constraints over the set of '
'natural numbers. Criteria of compatibility of a system of linear '
'Diophantine equations, strict inequations, and nonstrict inequations '
'are considered. Upper bounds for components of a minimal set of '
'solutions and algorithms of construction of minimal generating sets '
'of solutions for all types of systems are given. These criteria and '
'the corresponding algorithms for constructing a minimal supporting '
'set of solutions can be used in solving all the considered types of '
'systems and systems of mixed types.'
)
rake = Rake ()
keywords = rake . apply ( text_en )
print ( keywords [: 10 ])
# ('minimal generating sets', 8.666666666666666),
# ('linear diophantine equations', 8.5),
# ('minimal supporting set', 7.666666666666666),
# ('minimal set', 4.666666666666666),
# ('linear constraints', 4.5),
# ('natural numbers', 4.0),
# ('strict inequations', 4.0),
# ('nonstrict inequations', 4.0),
# ('upper bounds', 4.0),
# ('mixed types', 3.666666666666667),Teks yang ditulis dalam Esperanto (artikel tentang liberalisme). Tidak ada daftar stopword untuk bahasa ini, mereka akan dihasilkan dari teks yang disediakan.
text terdiri dari tiga paragraf pertama pengantar. text_for_stopwords - semua teks lainnya.
text = (
'Liberalismo estas politika filozofio aŭ mondrigardo konstruita en '
'ideoj de libereco kaj egaleco. Liberaluloj apogas larĝan aron de '
'vidpunktoj depende de sia kompreno de tiuj principoj, sed ĝenerale '
'ili apogas ideojn kiel ekzemple liberaj kaj justaj elektoj, '
'civitanrajtoj, gazetara libereco, religia libereco, libera komerco, '
'kaj privata posedrajto. Liberalismo unue iĝis klara politika movado '
'dum la Klerismo, kiam ĝi iĝis populara inter filozofoj kaj '
'ekonomikistoj en la okcidenta mondo. Liberalismo malaprobis heredajn '
'privilegiojn, ŝtatan religion, absolutan monarkion kaj la Didevena '
'Rajto de Reĝoj. La filozofo John Locke de la 17-a jarcento ofte '
'estas meritigita pro fondado de liberalismo kiel klara filozofia '
'tradicio. Locke argumentis ke ĉiu homo havas naturon rekte al vivo, '
'libereco kaj posedrajto kaj laŭ la socia '
'kontrakto, registaroj ne rajtas malobservi tiujn rajtojn. '
'Liberaluloj kontraŭbatalis tradician konservativismon kaj serĉis '
'anstataŭigi absolutismon en registaroj per reprezenta demokratio kaj '
'la jura hegemonio.'
)
rake = Rake ( max_words_unknown_lang = 3 )
keywords = rake . apply ( text , text_for_stopwords = other_text )
print ( keywords )
# ('serĉis anstataŭigi absolutismon', 9.0) # sought to replace absolutism
# ('filozofo john locke', 8.5), # philosopher John Locke
# ('locke argumentis', 4.5) # Locke argues
# ('justaj elektoj', 4.0), # fair elections
# ('libera komerco', 4.0), # free trade
# ('okcidenta mondo', 4.0), # western world
# ('ŝtatan religion', 4.0), # state religion
# ('absolutan monarkion', 4.0), # absolute monarchy
# ('didevena rajto', 4.0), # Dominican Rights
# ('socia kontrakto', 4.0), # social contract
# ('jura hegemonio', 4.0), # legal hegemony
# ('mondrigardo konstruita', 4.0) # worldview built
# ('vidpunktoj depende', 4.0), # views based
# ('sia kompreno', 4.0), # their understanding
# ('tiuj principoj', 4.0), # these principles
# ('gazetara libereco', 3.5), # freedom of press
# ('religia libereco', 3.5), # religious freedom
# ('privata posedrajto', 3.5), # private property
# ('libereco', 1.5), # liberty
# ('posedrajto', 1.5)] # propertyJadi, kami bisa mendapatkan hasil yang layak tanpa set stopword yang eksplisit.
Inisialisasi objek Rake
from multi_rake import Rake
rake = Rake (
min_chars = 3 ,
max_words = 3 ,
min_freq = 1 ,
language_code = None , # 'en'
stopwords = None , # {'and', 'of'}
lang_detect_threshold = 50 ,
max_words_unknown_lang = 2 ,
generated_stopwords_percentile = 80 ,
generated_stopwords_max_len = 3 ,
generated_stopwords_min_freq = 2 ,
)Min_chars - Word dipilih untuk menjadi bagian dari kata kunci jika panjangnya> = min_chars. Default 3
MAX_WORDS - Jumlah kata -kata maksimum dalam frasa yang dianggap sebagai kata kunci. Default 3
Min_freq - Jumlah minimum kejadian dari suatu frasa untuk dianggap sebagai kata kunci. Default 1
language_code - Berikan kode bahasa sebagai string untuk menggunakan set stopwords bawaan. Lihat daftar bahasa yang tersedia. Jika bahasa tidak ditentukan algoritma akan mencoba menentukan bahasa dengan CLD2 dan menggunakan set stopword bawaan yang sesuai. Tidak ada default
Stopwords - Berikan koleksi Stopwords sendiri (lebih disukai sebagai set, lebih rendah). Mengesampingkan language_code jika ditentukan. Tidak ada default
Keep language_code dan stopwords karena None dan stopword akan dihasilkan dari teks yang disediakan.
lang_detect_threshold - ambang batas untuk probabilitas bahasa yang terdeteksi di CLD2 (0-100). Default 50
max_words_unknown_lang - Sama seperti max_words tetapi akan digunakan jika bahasa tidak diketahui dan stopwords dihasilkan dari teks yang disediakan. Biasanya hasil terbaik diperoleh ketika set stopwords yang dibuat secara khusus digunakan, jika tidak ada dan penggunaan kata kunci yang dihasilkan yang dihasilkan kata kunci mungkin tidak secantik dan mungkin ide yang bagus, misalnya, untuk menghasilkan kata kunci 2 kata untuk bahasa yang tidak diketahui dan kata kunci 3-kata untuk bahasa dengan set kata berhenti yang telah ditentukan sebelumnya. Default 2
generated_stopwords_percentile - Untuk menghasilkan stopwords kami membuat distribusi setiap kata dalam teks berdasarkan frekuensi. Kata -kata di atas persentil ini (0 - 100) akan dianggap sebagai kandidat sebagai stopwords. Default 80
generated_stopwords_max_len - Panjang karakter maksimum dari stopword yang dihasilkan. Default 3
Generated_stopwords_min_freq - Frekuensi minimum Stopword yang dihasilkan dalam distribusi. Default 2
Terapkan objek Rake ke teks.
keywords = rake . apply (
text ,
text_for_stopwords = None ,
)Teks - String yang berisi teks dari mana kata kunci harus dihasilkan.
text_for_stopwords - string yang berisi teks yang akan digunakan untuk pembuatan stopwords bersama text . Misalnya, Anda memiliki artikel dengan pengantar dan beberapa subbagian. Anda tahu bahwa untuk tujuan Anda kata kunci dari pengantar sudah cukup, Anda tidak tahu bahasa teks atau Anda memiliki daftar stopwords. Jadi stopwords dapat dihasilkan dari teks itu sendiri dan semakin banyak teks yang Anda miliki, semakin baik. Daripada Anda dapat menentukan text=introduction, text_for_stopwords=rest_of_your_text .
Algoritma Rake berfungsi seperti yang dijelaskan dalam Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010). Ekstraksi kata kunci otomatis dari masing -masing dokumen. Dalam MW Berry & J. Kogan (Eds.), Teks Penambangan: Teori dan Aplikasi: John Wiley & Sons
Implementasi ini berbeda dari yang lain dengan dukungan multibahasa. Pada dasarnya Anda dapat memberikan teks tanpa mengetahui bahasanya (itu harus ditulis dengan huruf cyrillic atau Latin), tanpa daftar stopwords eksplisit dan mendapatkan hasil yang layak. Meskipun hasil terbaik dicapai dengan daftar stopword yang dibangun secara menyeluruh.
Apa yang terjadi di bawah kap:
text dan text_for_stopwords Kami menghasilkan Stopwords dengan membuat distribusi frekuensi kata dalam teks dan memfilternya dengan parameter generated_stopwords_percentile , generated_stopwords_max_len , generated_stopwords_min_freq . Kami tidak akan dapat menghasilkannya dengan sempurna tetapi agak mudah untuk menemukan artikel dan preposisi, karena biasanya mereka terdiri dari 3-4 karakter dan sering muncul. Stopwords ini, ditambah dengan pembatas tanda baca, memungkinkan kami untuk mendapatkan hasil yang layak untuk bahasa yang tidak kami mengerti.
Selama inisialisasi Rake, hanya kode bahasa yang harus digunakan.
Repositori telah mengonfigurasi linter, pengujian, dan cakupan.
Buat lingkungan virtual baru di dalam folder multi_rake untuk menggunakannya.
python3 -m venv env
source env/bin/activate
make install-dev # install dependencies
make lint # run linter
make test # run tests and coverage Algoritma Rake: Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010). Ekstraksi kata kunci otomatis dari masing -masing dokumen. Dalam MW Berry & J. Kogan (Eds.), Teks Penambangan: Teori dan Aplikasi: John Wiley & Sons
Sebagai implementasi dasar rake oleh FabianVF digunakan.
Stopwords: trec-kba, peringkat nl