Whoo sh модуль выделения - PullRequest
       81

Whoo sh модуль выделения

0 голосов
/ 21 февраля 2020

Я пытаюсь заставить функцию выделения работать с документами, полученными из запроса. Это код, который я использую:

import whoosh.index
from whoosh.qparser import QueryParser
from whoosh import scoring
from whoosh.index import open_dir
from whoosh import qparser
from whoosh import searching
from whoosh.searching import Hit
from whoosh import highlight
from whoosh.highlight import WholeFragmenter

ix = open_dir("indexdir")

# query_str is query string
query_str = "accountability"
#Top 'n' documents as result
topN = int("5")
og = qparser.OrGroup.factory(0.9)
query = qparser.QueryParser("textdata", schema = ix.schema, group = og)
q = query.parse(query_str)


with ix.searcher(weighting=scoring.TF_IDF()) as searcher:
    results = searcher.search(q, terms = True, limit=topN)
    results.fragmenter.charlimit = 100
    my_cf = highlight.SentenceFragmenter(maxchars=100, sentencechars='.!?')
    results.fragmenter = my_cf
    for i in range(topN):
        print(results[i]['title'], str(results[i].score), results[i].highlights('textdata'))

Это результат, который я получил

Users 13.027961778148635 They see it as

a waste of money with no <b class="match term0">accountability</b>
Users 8.68530785209909 
Users 8.68530785209909 However, what we are here today to do is deter-

mine if <b class="match term0">accountability</b> is emerging
Users 8.68530785209909 The witnesses are here for the purposes

of <b class="match term0">accountability</b>
Users 4.342653926049545 Deputy Catherine Connolly: We cannot examine the minutiae but only governance and

<b class="match term0">accountability</b>

Помимо заголовка, который возвращает первый каталог пути вместо фактического заголовка документ, мне нужно, чтобы выделенный текст был выделен. Если я использую результаты [i] ['textdata'] вместо результатов [i] .highlights ('textdata'), я получаю фактическую страницу текста, в которой извлекается термин. Я пытался со всеми видами модифицированных кодов, полученных из оригинальных документов, но ничего не делать.

...