Пример #1
0
def query():
    ''' Process the POST request with the search query. '''

    query = request.form["query"]
    songs = search.search_query(query)

    return jsonify(songs)
Пример #2
0
def search_query():
    global output
    try:
        query = form['query'].value.decode('utf-8')
        output['results'] = search.search_query(query)
        output['status'] = 'OK'
    except KeyError, e:
        output['reason'] = 'nothing-%s' % e
Пример #3
0
class main:
    #vector_space = inverted_index()  

    # *************************** INPUTTING THE QUERY ***************************

    k = input('Enter value of k:') #Accepting query from the user
    query = input('Enter your search query:') #Accepting query from the user
    search.search_query(query, k)
Пример #4
0
    def on_click(self):

        self.statusBar().showMessage('Getting data...')

        searchboxValue = self.searchbox.currentText()
        #send this search query to kaushik and get back top 10 results in the form of a list or something
        books_result = search.search_query(searchboxValue)
        if not books_result:
            self.incorrect_query.show()
            for i in range(0, 6):
                self.titles[i].hide()
            for i in range(0, 10):
                self.serial_no[i].hide()
            for i in range(0, 10):
                self.rlabel[i].hide()
            for i in range(0, 10):
                self.author_label[i].hide()
            for i in range(0, 10):
                self.genre_label[i].hide()
            for i in range(0, 10):
                self.rating_label[i].hide()
            for i in range(0, 10):
                self.rbutton[i].hide()
        else:
            self.incorrect_query.hide()
            for i in range(0, 10):
                self.rlabel[i].setText(books_result[i].title)
                self.author_label[i].setText(books_result[i].author)
                self.genre_label[i].setText(books_result[i].genre)
                self.rating_label[i].setText(books_result[i].rating)

            for i in range(0, 6):
                self.titles[i].show()

            for i in range(0, 10):
                self.serial_no[i].show()

            for i in range(0, 10):
                self.rlabel[i].show()

            for i in range(0, 10):
                self.rbutton[i].show()

            for i in range(0, 10):
                self.author_label[i].show()

            for i in range(0, 10):
                self.genre_label[i].show()

            for i in range(0, 10):
                self.rating_label[i].show()
        self.statusBar().showMessage('Search Complete')
def unit_test(rootDir, testcase_path, out_file):
    ''''''

    (file_data, file_dirs) = get_filtered_data(rootDir)
    tokens_filtered = preprocess(file_data)
    token2files, filentoken2occ, token2occ = metrics.get_counts(tokens_filtered)
    filentoken2tfidf = metrics.get_tfidf(tokens_filtered, token2files, filentoken2occ)
    print('Loading done.')

    testcases = read_testcases(testcase_path, file_dirs)

    testcase_pos = []
    testcase_pos_scored = []
    all_results = []

    for t in testcases:
        results = search_query(t[0], filentoken2tfidf, token2files, debug=True)
        all_results.append(results)
        targets_pos = []
        targets_scores = []
        # where are the testcase targets?
        for i, r in enumerate(results):
            for target in range(len(t) - 1):
                if r[1] == t[1 + target]:
                    # use the average of all positions with the the same score
                    start, end = range_find(list(zip(*results))[0], r[0])
                    targets_scores.append((end + start) / 2)
                    targets_pos.append(i)

        # how many not found?
        not_found = len(t) - 1 - len(targets_pos)
        targets_scores.extend([100] * not_found)

        # average target scores
        testcase_pos_scored.append(sum(targets_scores) / len(targets_scores))
        testcase_pos.append(set(targets_pos))


    # if not found, partial error 100
    error = sum(testcase_pos_scored)

    with open(out_file, 'w') as out:
        out.write('Total error: {} (sum of target pos)\nTestcase errors: {}\n'.format(error, ' '.join(map(str, testcase_pos_scored))))

        for i, t in enumerate(testcases):
            out.write('\n\n\n\nTESTCASE {}\nError: {}\nQuery: {}\n{}\n'.format(i + 1, testcase_pos_scored[i], t[0], '-'*50))
            for j, res in enumerate(all_results[i]):
                if j in testcase_pos[i]:
                    out.write('(target) ')
                out.write('score: {}, path: {}, explanation: {}\n'.format(*res))
Пример #6
0
def start(query, page):
    click.echo("Please Wait..")

    results = search_query(query, page)
    click.echo(results)
    click.echo("=" * 200)
    click.echo("Do You Want Make a Excel File? [y/n]")
    a = click.getchar()
    click.echo()
    if a == "y":
        click.echo("Okay")
        folder_setup(results)
    elif a == "n":
        click.echo("Opss..")
    else:
        click.echo("Invalid Input, Please Type Yes or Not")
Пример #7
0
def search():
    searchTerm = request.data.decode('utf-8')

    # Perform the search query
    # Execute the searching script
    results = search_query(searchTerm, filentoken2tfidf, token2files)
    paths = [
        get_real_filepath(rootDir, realFileDir, file_dirs, results[i][1])
        for i in range(len(results))
    ]
    inds = [results[i] for i in range(len(results))]

    fileNames = [element[element.rfind('/') + 1:] for element in paths]
    print(paths)

    print(fileNames)

    return jsonify(fileNames)
def search():

    query = request.args.get("search")
    user = request.args.get("profile")
    field = request.args.get("field")
    topic = request.args.get("topic")

    res, should = search_query(
        query,
        count=10,
        user=user,
        topic=topic,
        field=field,
    )

    return render_template("search.html",
                           tweets=res,
                           query=query,
                           should=should,
                           count=10,
                           user=user,
                           topic=topic,
                           field=field)
Пример #9
0
def index():
    global global_search
    global global_artists
    global global_genre
    global global_music
    global global_lyrics
    if request.method == 'POST':
        if 'form_1' in request.form:
            if request.form['nm']:
                search = request.form['nm']
                global_search = search
                print(global_search)
            else :
                search = global_search
            list_songs, artists, genres, music, lyrics = search_query(search)
            global_artists, global_genre, global_music, global_lyrics = artists, genres, music, lyrics
        elif 'form_2' in request.form:
            search = global_search
            artist_filter = []
            genre_filter = []
            music_filter = []
            lyrics_filter = []
            for i in global_artists :
                if request.form.get(i["key"]):
                    artist_filter.append(i["key"])
            for i in global_genre :
                if request.form.get(i["key"]):
                    genre_filter.append(i["key"])
            for i in global_music:
                if request.form.get(i["key"]):
                    music_filter.append(i["key"])
            for i in global_lyrics:
                if request.form.get(i["key"]):
                    lyrics_filter.append(i["key"])
            list_songs, artists, genres, music, lyrics = search_query_filtered(search, artist_filter, genre_filter, music_filter, lyrics_filter)
        return render_template('index.html', songs = list_songs, artists = artists, genres = genres, music = music, lyrics = lyrics)
    return render_template('index.html', songs = '', artists = '',  genres = '', music = '', lyrics = '')
Пример #10
0
        ideal_ndcg[str(key)] = sum


def calculate_dcg(query, documents):
    count = 1
    sum = 0.0
    for document in documents:
        relevance =0
        key = str(query['query number']) + "_" + str(document)
        if key in query_document_relevance:
            relevance = query_document_relevance[key]
        sum = sum + relevance / math.log10(count + 1)
        count = count + 1
    return sum


if __name__ == '__main__':
    ideal_ndcg_queries()
    sum = 0.0
    all_queries = [query for query in read_queries() if query['query number'] != 0]
    for query in all_queries:
        documents = search_query(query)
        assert len(documents)==len(set(documents)), "Search results should not have duplicates:"+str(documents)
        if len(documents) > 0:
            print ("Query:{} and Results:{}".format(query, documents))
            dcg = calculate_dcg(query, documents)
            idcg = ideal_ndcg[str(query['query number'])]
            ndcg = dcg / idcg
            print ("dcg={}, ideal={}, ndcg={}".format(dcg, idcg, ndcg))
            sum = sum + ndcg
    print ("Final ncdg for all queries is {}".format(sum / len(all_queries)))
Пример #11
0
    for document in documents:
        relevance = 0
        key = str(query['query number']) + "_" + str(document)
        if key in query_document_relevance:
            relevance = query_document_relevance[key]
        sum = sum + relevance / math.log10(count + 1)
        count = count + 1
    return sum


if __name__ == '__main__':
    ideal_ndcg_queries()
    sum = 0.0
    all_queries = [
        query for query in read_queries() if query['query number'] != 0
    ]

    for query in all_queries:
        document_objects = search_query(query, load_models())
        documents = []
        for each in document_objects:
            documents.append(each['id'])

        if len(documents) > 0:
            print("Query:{} and Results:{}".format(query, documents))
            dcg = calculate_dcg(query, documents)
            idcg = ideal_ndcg[str(query['query number'])]
            ndcg = dcg / idcg
            print("dcg={}, ideal={}, ndcg={}".format(dcg, idcg, ndcg))
            sum = sum + ndcg
    print("Final ncdg for all queries is {}".format(sum / len(all_queries)))
Пример #12
0
def result():
    if request.method == 'POST':
        query = (request.get_data()).decode("utf-8")
        query = query[4:]
        search.search_query(query, 3)
        return render_template('results.html')