flashtext
1.0.0
يمكن استخدام هذه الوحدة لاستبدال الكلمات الرئيسية في الجمل أو استخراج الكلمات الرئيسية من الجمل. يعتمد على خوارزمية الفلاش.
$ 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
$ git clone https://github.com/vi3k6i5/flashtext $ cd flashtext/docs $ pip تثبيت sphinx $ جعل html $ # افتح _build/html/index.html في المتصفح لعرضه محليًا
إنها خوارزمية مخصصة تستند إلى خوارزمية Aho-Corasick وقاموس Trie.

الوقت الذي تستغرقه FlashText للعثور على مصطلحات بالمقارنة مع Regex.
الوقت الذي تستغرقه FlashText لاستبدال المصطلحات بالمقارنة مع Regex.
رابط إلى رمز لقياس ميزة البحث واستبدل الميزة.
جاءت فكرة هذه المكتبة من سؤال Stackoverflow التالي.
الورقة الأصلية المنشورة على خوارزمية FlashText.
article {2017ARXIV171100046S ،
المؤلف = {{Singh} ، V.} ،
title = "{استبدال أو استرداد الكلمات الرئيسية في المستندات على نطاق واسع" ،
مجلة = {arxiv e-prints} ،
ArchivePrefix = "Arxiv" ،
ePrint = {1711.00046} ،
PrimaryClass = "CS.DS" ،
الكلمات الرئيسية = {علوم الكمبيوتر - هياكل البيانات والخوارزميات} ،
السنة = 2017 ،
الشهر = أكتوبر ،
adsurl = {http://adsabs.harvard.edu/abs/2017arxiv171100046s} ،
adsnote = {الذي تم توفيره بواسطة نظام بيانات الفيزياء الفلكية SAO/NASA}
}
المقالة المنشورة على متوسطة FreeCodecamp.
المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.