當前位置: 首頁>>代碼示例>>Python>>正文


Python ahocorasick.Automaton方法代碼示例

本文整理匯總了Python中ahocorasick.Automaton方法的典型用法代碼示例。如果您正苦於以下問題:Python ahocorasick.Automaton方法的具體用法?Python ahocorasick.Automaton怎麽用?Python ahocorasick.Automaton使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ahocorasick的用法示例。


在下文中一共展示了ahocorasick.Automaton方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: convert

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def convert(content: str,
            realm_alert_words_automaton: Optional[ahocorasick.Automaton] = None,
            message: Optional[Message]=None,
            message_realm: Optional[Realm]=None,
            sent_by_bot: bool=False,
            translate_emoticons: bool=False,
            mention_data: Optional[MentionData]=None,
            email_gateway: bool=False,
            no_previews: bool=False) -> str:
    markdown_stats_start()
    ret = do_convert(content, realm_alert_words_automaton,
                     message, message_realm, sent_by_bot,
                     translate_emoticons, mention_data, email_gateway,
                     no_previews=no_previews)
    markdown_stats_finish()
    return ret 
開發者ID:zulip,項目名稱:zulip,代碼行數:18,代碼來源:__init__.py

示例2: get_alert_word_automaton

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def get_alert_word_automaton(realm: Realm) -> ahocorasick.Automaton:
    user_id_with_words = alert_words_in_realm(realm)
    alert_word_automaton  = ahocorasick.Automaton()
    for (user_id, alert_words) in user_id_with_words.items():
        for alert_word in alert_words:
            alert_word_lower = alert_word.lower()
            if alert_word_automaton.exists(alert_word_lower):
                (key, user_ids_for_alert_word) = alert_word_automaton.get(alert_word_lower)
                user_ids_for_alert_word.add(user_id)
            else:
                alert_word_automaton.add_word(alert_word_lower, (alert_word_lower, {user_id}))
    alert_word_automaton.make_automaton()
    # If the kind is not AHOCORASICK after calling make_automaton, it means there is no key present
    # and hence we cannot call items on the automaton yet. To avoid it we return None for such cases
    # where there is no alert-words in the realm.
    # https://pyahocorasick.readthedocs.io/en/latest/index.html?highlight=Automaton.kind#module-constants
    if alert_word_automaton.kind != ahocorasick.AHOCORASICK:
        return None
    return alert_word_automaton 
開發者ID:zulip,項目名稱:zulip,代碼行數:21,代碼來源:alert_words.py

示例3: __init__

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def __init__(self, ignore_case=True, titles=None, extra_titles=None):
        """
        :param ignore_case if True, lower case job titles are also added
        :param titles: if given, overrides default `load_titles()` values
        :param extra_titles: if given, add to titles
        """
        titles = titles if titles else load_titles()
        logging.info('building job title searcher')
        autom = ahocorasick.Automaton()
        for title in titles:
            autom.add_word(title, title)
            if ignore_case:
                autom.add_word(title.lower(), title.lower())

        if extra_titles:
            for title in extra_titles:
                autom.add_word(title, title)
                if ignore_case:
                    autom.add_word(title.lower(), title.lower())

        autom.make_automaton()
        self.autom = autom
        logging.info('building done') 
開發者ID:fluquid,項目名稱:find_job_titles,代碼行數:25,代碼來源:__init__.py

示例4: build_actree

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def build_actree(self, wordlist):
        """
        構造actree,加速過濾
        :param wordlist: 詞表
        :return:
        """
        actree = ahocorasick.Automaton()
        for index, word in enumerate(wordlist):
            actree.add_word(word, (index, word))
        actree.make_automaton()
        return actree 
開發者ID:shibing624,項目名稱:dialogbot,代碼行數:13,代碼來源:question_classifier.py

示例5: build_dic_search

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def build_dic_search(dic: dict):
    A = ahocorasick.Automaton()
    print("adding words to automaton")
    for k, v in tqdm.tqdm(dic.items()):
        A.add_word(k, (k,v))
    print("finalize automaton")
    A.make_automaton()
    return A 
開發者ID:fabiencro,項目名稱:knmt,代碼行數:10,代碼來源:dictionnary_handling.py

示例6: find_match_in_list

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def find_match_in_list(line, lst):
    A = ahocorasick.Automaton()
    for w in lst:
        A.add_word(w,w)
    A.make_automaton()
    m = {}
    for end, w in A.iter(line):
        if end not in m:
             m[end] = w
             for i in range(1,len(w)):
                 if end-i in m:
                     del m[end-i]
    return m 
開發者ID:fabiencro,項目名稱:knmt,代碼行數:15,代碼來源:dictionnary_handling.py

示例7: render_markdown

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def render_markdown(message: Message,
                    content: str,
                    realm: Optional[Realm]=None,
                    realm_alert_words_automaton: Optional[ahocorasick.Automaton]=None,
                    mention_data: Optional[MentionData]=None,
                    email_gateway: bool=False) -> str:
    '''
    This is basically just a wrapper for do_render_markdown.
    '''

    if realm is None:
        realm = message.get_realm()

    sender = get_user_profile_by_id(message.sender_id)
    sent_by_bot = sender.is_bot
    translate_emoticons = sender.translate_emoticons

    rendered_content = do_render_markdown(
        message=message,
        content=content,
        realm=realm,
        realm_alert_words_automaton=realm_alert_words_automaton,
        sent_by_bot=sent_by_bot,
        translate_emoticons=translate_emoticons,
        mention_data=mention_data,
        email_gateway=email_gateway,
    )

    return rendered_content 
開發者ID:zulip,項目名稱:zulip,代碼行數:31,代碼來源:message.py

示例8: do_render_markdown

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def do_render_markdown(message: Message,
                       content: str,
                       realm: Realm,
                       sent_by_bot: bool,
                       translate_emoticons: bool,
                       realm_alert_words_automaton: Optional[ahocorasick.Automaton]=None,
                       mention_data: Optional[MentionData]=None,
                       email_gateway: bool=False) -> str:
    """Return HTML for given markdown. Markdown may add properties to the
    message object such as `mentions_user_ids`, `mentions_user_group_ids`, and
    `mentions_wildcard`.  These are only on this Django object and are not
    saved in the database.
    """

    message.mentions_wildcard = False
    message.mentions_user_ids = set()
    message.mentions_user_group_ids = set()
    message.alert_words = set()
    message.links_for_preview = set()
    message.user_ids_with_alert_words = set()

    # DO MAIN WORK HERE -- call markdown to convert
    rendered_content = markdown_convert(
        content,
        realm_alert_words_automaton=realm_alert_words_automaton,
        message=message,
        message_realm=realm,
        sent_by_bot=sent_by_bot,
        translate_emoticons=translate_emoticons,
        mention_data=mention_data,
        email_gateway=email_gateway,
    )
    return rendered_content 
開發者ID:zulip,項目名稱:zulip,代碼行數:35,代碼來源:message.py

示例9: make_trie

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def make_trie(names):
        trie = ahocorasick.Automaton()
        for name in names:
            norm = name.replace(" ", "")
            trie.add_word(norm, (len(norm), name))
        trie.make_automaton()
        return trie 
開發者ID:paperswithcode,項目名稱:axcell,代碼行數:9,代碼來源:context_search.py

示例10: _find_keywords_ahocorasick

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def _find_keywords_ahocorasick(self, text):
        events = []
        if self.ahocorasick_automaton == None:
            self.ahocorasick_automaton = ahocorasick.Automaton(ahocorasick.STORE_LENGTH)
            for index, entry in enumerate(self.keyword_sequence):
                self.ahocorasick_automaton.add_word(entry)
            self.ahocorasick_automaton.make_automaton()
        for end, length in self.ahocorasick_automaton.iter(text):
            events.append(
                {START: end - length + 1, END: end + 1}
            )
        return events 
開發者ID:estnltk,項目名稱:estnltk,代碼行數:14,代碼來源:event_tagger.py

示例11: _find_events_ahocorasick

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def _find_events_ahocorasick(self, text):
        events = []
        if self.ahocorasick_automaton == None:
            self.ahocorasick_automaton = ahocorasick.Automaton()
            for entry in self.event_vocabulary:
                term = entry[TERM] if self.case_sensitive else entry[TERM].lower()
                self.ahocorasick_automaton.add_word(term, entry)
            self.ahocorasick_automaton.make_automaton()
        _text = text if self.case_sensitive else text.lower()
        for item in self.ahocorasick_automaton.iter(_text):
            events.append(item[1].copy())
            events[-1].update({START: item[0] + 1 - len(item[1][TERM]), END: item[0] + 1})
        return events 
開發者ID:estnltk,項目名稱:estnltk,代碼行數:15,代碼來源:event_tagger.py

示例12: init_ahocorasick

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def init_ahocorasick():
    A = ahocorasick.Automaton()
    for keyword in keyword_list:
        A.add_word(keyword, keyword)
    A.make_automaton()
    return A 
開發者ID:abusix,項目名稱:ahocorapy,代碼行數:8,代碼來源:ahocorapy_performance_test.py

示例13: init_py_aho_corasick

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def init_py_aho_corasick():
    return py_aho_corasick.Automaton(keyword_list) 
開發者ID:abusix,項目名稱:ahocorapy,代碼行數:4,代碼來源:ahocorapy_performance_test.py

示例14: build_automaton

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def build_automaton(word_list):
    """
    :type word_list: str
    :param word_list: optional word list file for ignoring certain words.

    :rtype: (ahocorasick.Automaton, str)
    :returns: an automaton, and an iterated sha1 hash of the words in the word list.
    """
    # Dynamic import due to optional-dependency
    try:
        import ahocorasick
    except ImportError:  # pragma: no cover
        print('Please install the `pyahocorasick` package to use --word-list')
        raise

    # See https://pyahocorasick.readthedocs.io/en/latest/
    # for more information.
    automaton = ahocorasick.Automaton()
    word_list_hash = hashlib.sha1()

    with open(word_list) as f:
        for line in f.readlines():
            # .lower() to make everything case-insensitive
            line = line.lower().strip()
            if len(line) > 3:
                word_list_hash.update(line.encode('utf-8'))
                automaton.add_word(line, line)

    automaton.make_automaton()

    return (
        automaton,
        word_list_hash.hexdigest(),
    ) 
開發者ID:Yelp,項目名稱:detect-secrets,代碼行數:36,代碼來源:util.py

示例15: test_analyze_standard_positives_with_automaton

# 需要導入模塊: import ahocorasick [as 別名]
# 或者: from ahocorasick import Automaton [as 別名]
def test_analyze_standard_positives_with_automaton(self, file_content):
        automaton = ahocorasick.Automaton()

        word = 'thisone'
        automaton.add_word(word, word)

        automaton.make_automaton()

        logic = KeywordDetector(automaton=automaton)

        f = mock_file_object(file_content)
        output = logic.analyze(f, 'mock_filename')
        # All skipped due to automaton
        assert len(output) == 0 
開發者ID:Yelp,項目名稱:detect-secrets,代碼行數:16,代碼來源:keyword_test.py


注:本文中的ahocorasick.Automaton方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。