Modul ini dapat digunakan untuk mengganti kata kunci dalam kalimat atau mengekstrak kata kunci dari kalimat. Ini didasarkan pada algoritma FlashText.
$ PIP Instal FlashText
Dokumentasi dapat ditemukan di Flashtext Baca dokumen.
>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> # keyword_processor.add_keyword(<unclean name>, <standardised name>)
>>> keyword_processor.add_keyword( ' Big Apple ' , ' New York ' )
>>> keyword_processor.add_keyword( ' Bay Area ' )
>>> keywords_found = keyword_processor.extract_keywords( ' I love Big Apple and Bay Area. ' )
>>> keywords_found
>>> # ['New York', 'Bay Area']>>> keyword_processor.add_keyword( ' New Delhi ' , ' NCR region ' )
>>> new_sentence = keyword_processor.replace_keywords( ' I love Big Apple and new delhi. ' )
>>> new_sentence
>>> # 'I love New York and NCR region.'>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor( case_sensitive = True )
>>> keyword_processor.add_keyword( ' Big Apple ' , ' New York ' )
>>> keyword_processor.add_keyword( ' Bay Area ' )
>>> keywords_found = keyword_processor.extract_keywords( ' I love big Apple and Bay Area. ' )
>>> keywords_found
>>> # ['Bay Area']>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_processor.add_keyword( ' Big Apple ' , ' New York ' )
>>> keyword_processor.add_keyword( ' Bay Area ' )
>>> keywords_found = keyword_processor.extract_keywords( ' I love big Apple and Bay Area. ' , span_info = True )
>>> keywords_found
>>> # [('New York', 7, 16), ('Bay Area', 21, 29)]>>> from flashtext import KeywordProcessor
>>> kp = KeywordProcessor()
>>> kp.add_keyword( ' Taj Mahal ' , ( ' Monument ' , ' Taj Mahal ' ))
>>> kp.add_keyword( ' Delhi ' , ( ' Location ' , ' Delhi ' ))
>>> kp.extract_keywords( ' Taj Mahal is in Delhi. ' )
>>> # [('Monument', 'Taj Mahal'), ('Location', 'Delhi')]
>>> # NOTE : replace_keywords feature won't work with this.>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_processor.add_keyword( ' Big Apple ' )
>>> keyword_processor.add_keyword( ' Bay Area ' )
>>> keywords_found = keyword_processor.extract_keywords( ' I love big Apple and Bay Area. ' )
>>> keywords_found
>>> # ['Big Apple', 'Bay Area']>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_dict = {
>>> " java " : [ " java_2e " , " java programing " ],
>>> " product management " : [ " PM " , " product manager " ]
>>> }
>>> # {'clean_name': ['list of unclean names']}
>>> keyword_processor.add_keywords_from_dict(keyword_dict)
>>> # Or add keywords from a list:
>>> keyword_processor.add_keywords_from_list([ " java " , " python " ])
>>> keyword_processor.extract_keywords( ' I am a product manager for a java_2e platform ' )
>>> # output ['product management', 'java']>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_dict = {
>>> " java " : [ " java_2e " , " java programing " ],
>>> " product management " : [ " PM " , " product manager " ]
>>> }
>>> keyword_processor.add_keywords_from_dict(keyword_dict)
>>> print (keyword_processor.extract_keywords( ' I am a product manager for a java_2e platform ' ))
>>> # output ['product management', 'java']
>>> keyword_processor.remove_keyword( ' java_2e ' )
>>> # you can also remove keywords from a list/ dictionary
>>> keyword_processor.remove_keywords_from_dict({ " product management " : [ " PM " ]})
>>> keyword_processor.remove_keywords_from_list([ " java programing " ])
>>> keyword_processor.extract_keywords( ' I am a product manager for a java_2e platform ' )
>>> # output ['product management']>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_dict = {
>>> " java " : [ " java_2e " , " java programing " ],
>>> " product management " : [ " PM " , " product manager " ]
>>> }
>>> keyword_processor.add_keywords_from_dict(keyword_dict)
>>> print ( len (keyword_processor))
>>> # output 4>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_processor.add_keyword( ' j2ee ' , ' Java ' )
>>> ' j2ee ' in keyword_processor
>>> # output: True
>>> keyword_processor.get_keyword( ' j2ee ' )
>>> # output: Java
>>> keyword_processor[ ' colour ' ] = ' color '
>>> keyword_processor[ ' colour ' ]
>>> # output: color>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_processor.add_keyword( ' j2ee ' , ' Java ' )
>>> keyword_processor.add_keyword( ' colour ' , ' color ' )
>>> keyword_processor.get_all_keywords()
>>> # output: {'colour': 'color', 'j2ee': 'Java'}Untuk mendeteksi batas kata saat ini karakter apa pun selain dari ini [a-za-z0-9_] dianggap sebagai batas kata.
>>> from flashtext import KeywordProcessor
>>> keyword_processor = KeywordProcessor()
>>> keyword_processor.add_keyword( ' Big Apple ' )
>>> print (keyword_processor.extract_keywords( ' I love Big Apple/Bay Area. ' ))
>>> # ['Big Apple']
>>> keyword_processor.add_non_word_boundary( ' / ' )
>>> print (keyword_processor.extract_keywords( ' I love Big Apple/Bay Area. ' ))
>>> # [] $ git clone https://github.com/vi3k6i5/flashtext $ CD FlashText $ Pip Instal Pytest $ python setup.py test
$ git clone https://github.com/vi3k6i5/flashtext $ CD FlashText/Documents $ pip instal sphinx $ membuat html $ # buka _build/html/index.html di browser untuk melihatnya secara lokal
Ini adalah algoritma khusus berdasarkan algoritma AHO-Corasick dan Kamus Trie.

Waktu yang diambil oleh FlashText untuk menemukan istilah dibandingkan dengan Regex.
Waktu yang diambil oleh FlashText untuk menggantikan istilah dibandingkan dengan Regex.
Tautan ke kode untuk membandingkan fitur find dan ganti fitur.
Gagasan untuk perpustakaan ini berasal dari pertanyaan stackoverflow berikut.
Makalah asli yang diterbitkan pada algoritma Flashtext.
@Article {2017arxiv171100046s,
penulis = {{singh}, V.},
title = "{mengganti atau mengambil kata kunci dalam dokumen pada skala}",
Journal = {Arxiv e-Prints},
archiveprefix = "arxiv",
ePrint = {1711.00046},
primaryclass = "cs.ds",
Kata kunci = {Ilmu Komputer - Struktur Data dan Algoritma},
Tahun = 2017,
Bulan = Oct,
adsurl = {http://adsabs.harvard.edu/abs/2017arxiv171100046s},
ADSnote = {disediakan oleh sistem data astrofisika SAO/NASA}
}
Artikel yang diterbitkan di Medium Freecodecamp.
Proyek ini dilisensikan di bawah lisensi MIT.