Dieses Modul kann verwendet werden, um Schlüsselwörter in Sätzen zu ersetzen oder Schlüsselwörter aus Sätzen zu extrahieren. Es basiert auf dem FlashText -Algorithmus.
$ pip Installieren Sie den FlashText
Die Dokumentation finden Sie unter FlashText Lesen Sie die Dokumente.
>>> 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'}Zur Erkennung von Wortgrenze wird derzeit ein anderes Zeichen als dieses w [a-za-z0-9_] als Wortgrenze angesehen.
>>> 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 klone https://github.com/vi3k6i5/flashtext $ CD FlashText $ pip install PyTest $ python setup.py test
$ git klone https://github.com/vi3k6i5/flashtext $ CD FlashText/Docs $ pip install sphinx $ mach html $ # öffnen _build/html/index.html im Browser, um es lokal anzuzeigen
Es ist ein benutzerdefinierter Algorithmus, der auf Aho-Korasick-Algorithmus und Trie Dictionary basiert.

Die Zeit von FlashText, um Begriffe im Vergleich zu Regex zu finden.
Die Zeit, die von FlashText in Anspruch genommen wurde, um Begriffe im Vergleich zu Regex zu ersetzen.
Link zum Code zum Benchmarking der Funktion für Finding und Ersetzen.
Die Idee für diese Bibliothek stammte aus der folgenden Stackoverflow -Frage.
Das Originalpapier, das auf dem FlashText -Algorithmus veröffentlicht wurde.
@Article {2017ArXIV171100046s,
Autor = {{Singh}, V.},
title = "{Ersetzen oder abrufen Schlüsselwörter in Dokumenten in Skala}", ",", ",", ",", ",", ","
Journal = {Arxiv e-Prints},
ArchivePrefix = "Arxiv",
ePrint = {1711.00046},
primaryClass = "cs.ds",
Keywords = {Informatik - Datenstrukturen und Algorithmen},
Jahr = 2017,
Monat = OCT,
adsurl = {http://adsabs.harvard.edu/abs/2017arxiv171100046s},
adsnote = {bereitgestellt vom SAO/NASA Astrophysics Data System}}
}
Der Artikel, der im mittleren Freecodecamp veröffentlicht wurde.
Das Projekt ist unter der MIT -Lizenz lizenziert.