当前位置: 首页>>代码示例>>Python>>正文


Python SpellChecker.suggest方法代码示例

本文整理汇总了Python中whoosh.spelling.SpellChecker.suggest方法的典型用法代码示例。如果您正苦于以下问题:Python SpellChecker.suggest方法的具体用法?Python SpellChecker.suggest怎么用?Python SpellChecker.suggest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在whoosh.spelling.SpellChecker的用法示例。


在下文中一共展示了SpellChecker.suggest方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: create_spelling_suggestion

# 需要导入模块: from whoosh.spelling import SpellChecker [as 别名]
# 或者: from whoosh.spelling.SpellChecker import suggest [as 别名]
 def create_spelling_suggestion(self, query_string):
     spelling_suggestion = None
     sp = SpellChecker(self.storage)
     cleaned_query = force_unicode(query_string)
     
     if not query_string:
         return spelling_suggestion
     
     # Clean the string.
     for rev_word in self.RESERVED_WORDS:
         cleaned_query = cleaned_query.replace(rev_word, '')
     
     for rev_char in self.RESERVED_CHARACTERS:
         cleaned_query = cleaned_query.replace(rev_char, '')
     
     # Break it down.
     query_words = cleaned_query.split()
     suggested_words = []
     
     for word in query_words:
         suggestions = sp.suggest(word, number=1)
         
         if len(suggestions) > 0:
             suggested_words.append(suggestions[0])
     
     spelling_suggestion = ' '.join(suggested_words)
     return spelling_suggestion
开发者ID:concentricsky,项目名称:django-haystack,代码行数:29,代码来源:whoosh_backend.py

示例2: run_query

# 需要导入模块: from whoosh.spelling import SpellChecker [as 别名]
# 或者: from whoosh.spelling.SpellChecker import suggest [as 别名]
def run_query(query, index):
    """
      Queries the index for data with the given text query

        @param  query   The text query to perform on the indexed data
        @return			A list of HTMl string snippets to return
    """

    # Create a searcher object for this index
    searcher = index.searcher()

    # Create a query parser that will parse multiple fields of the documents
    field_boosts = {
        'content': 1.0,
        'title': 3.0
    }
    query_parser = MultifieldParser(['content', 'title'], schema=index_schema, fieldboosts=field_boosts, group=OrGroup)

    # Build a query object from the query string
    query_object = query_parser.parse(query)

    # Build a spell checker in this index and add the "content" field to the spell checker
    spell_checker = SpellChecker(index.storage)
    spell_checker.add_field(index, 'content')
    spell_checker.add_field(index, 'title')

    # Extract the 'terms' that were found in the query string. This data can be used for highlighting the results
    search_terms = [text for fieldname, text in query_object.all_terms()]

    # Remove terms that are too short
    for search_term in search_terms:
        if len(search_term) <= 3:
            search_terms.remove(search_term)

    # Perform the query itself
    search_results = searcher.search(query_object)

    # Get an analyzer for analyzing the content of each page for highlighting
    analyzer = index_schema['content'].format.analyzer

    # Build the fragmenter object, which will automatically split up excerpts. This fragmenter will split up excerpts
    #   by 'context' in the content
    fragmenter = ContextFragmenter(frozenset(search_terms))

    # Build the formatter, which will dictate how to highlight the excerpts. In this case, we want to use HTML to
    #   highlight the results
    formatter = HtmlFormatter()

    # Iterate through the search results, highlighting and counting the results
    result_count = 0
    results = []
    for search_result in search_results:
        # Collect this search result
        results.append({
            'content': highlight(search_result['content'], search_terms, analyzer, fragmenter, formatter),
            'url': search_result['url'],
            'title': search_result['title']
        })
        result_count += 1

    # Build a list of 'suggest' words using the spell checker
    suggestions = []
    for term in search_terms:
        suggestions.append(spell_checker.suggest(term))

    # Return the list of web pages along with the terms used in the search
    return results, search_terms, suggestions, result_count
开发者ID:jtedesco,项目名称:ProfessionalWebsite,代码行数:69,代码来源:search.py


注:本文中的whoosh.spelling.SpellChecker.suggest方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。