flashtext
1.0.0
โมดูลนี้สามารถใช้เพื่อแทนที่คำหลักในประโยคหรือแยกคำหลักจากประโยค มันขึ้นอยู่กับอัลกอริทึม FlashText
$ pip ติดตั้ง flashtext
เอกสารสามารถพบได้ที่ FlashText อ่านเอกสาร
>>> 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'}สำหรับการตรวจจับขอบเขตคำในปัจจุบันอักขระใด ๆ นอกเหนือจากนี้ w [A-ZA-Z0-9_] ถือเป็นขอบเขตคำ
>>> 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 ติดตั้ง pytest $ python setup.py test
$ git clone https://github.com/vi3k6i5/flashtext $ cd flashtext/docs $ PIP ติดตั้งสฟิงซ์ $ ทำ html $ # เปิด _build/html/index.html ในเบราว์เซอร์เพื่อดูในเครื่อง
มันเป็นอัลกอริทึมที่กำหนดเองตามอัลกอริทึม Aho-Corasick และพจนานุกรม Trie

เวลาที่ใช้โดย FlashText เพื่อค้นหาคำศัพท์เมื่อเปรียบเทียบกับ Regex
เวลาที่ใช้โดย FlashText เพื่อแทนที่คำศัพท์เมื่อเปรียบเทียบกับ Regex
ลิงก์ไปยังรหัสสำหรับการเปรียบเทียบคุณสมบัติการค้นหาและแทนที่คุณสมบัติ
แนวคิดสำหรับห้องสมุดนี้มาจากคำถาม stackoverflow ต่อไปนี้
กระดาษต้นฉบับที่เผยแพร่บนอัลกอริทึม FlashText
@article {2017Arxiv171100046S
ผู้แต่ง = {{singh}, V. },
title = "{แทนที่หรือดึงคำหลักในเอกสารที่สเกล}"
journal = {arxiv e-prints}
ArchivePrefix = "arxiv"
eprint = {1711.00046}
primarmclass = "cs.ds"
คำสำคัญ = {วิทยาศาสตร์คอมพิวเตอร์ - โครงสร้างข้อมูลและอัลกอริทึม}
ปี = 2017
เดือน = ต.ค.
adsurl = {http://adsabs.harvard.edu/abs/2017Arxiv171100046S}
ADSNOTE = {จัดทำโดยระบบข้อมูล Astrophysics SAO/NASA}}
-
บทความที่ตีพิมพ์ใน Medium Freecodecamp
โครงการได้รับใบอนุญาตภายใต้ใบอนุญาต MIT