print "\n".join(difflib.get_close_matches(word + "\n", open("russian.txt"))) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

print "\n".join(difflib.get_close_matches(word + "\n", open("russian.txt")))

Поиск

Профайлер

 

Для определения мест в программе,на выполнение которых уходит значительная часть времени,обычно применяется профайлер.

 

Модуль profile

 

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

 

В качестве примера можно рассмотреть профилирование функции для поиска строк из списка,наиболее похожих на данную.Для того чтобы качественно профилировать функцию difflib.get_close_matches(),нужен большой объем данных.В файлеrussian.txtсобрано160тысяч слов русского языка.Следующая программа поможет профилировать функцию difflib.get_close_matches():

 

import difflib, profile

 

def print_close_matches(word):

 

print "\n".join(difflib.get_close_matches(word + "\n", open("russian.txt")))

 

profile.run(r'print_close_matches("профайлер")')

 

При запуске этой программы будет выдано примерно следующее:

 

провайдер

 

трайлер


 


бройлер

 

899769 function calls (877642 primitive calls) in 23.620 CPU seconds Ordered by: standard name

ncalls tottime

percall

cumtime

percall filename:lineno(function)

0.000

0.000

23.610

23.610

<string>:1(?)

0.000

0.000

23.610

23.610

T.py:6(print_close_matches)

0.000

0.000

0.000

0.000

difflib.py:147(__init__)

0.000

0.000

0.000

0.000

difflib.py:210(set_seqs)

1.420

 

0.000

 

1.420

 

0.000

difflib.py:222(set_seq1)

0.000

0.000

0.000

0.000

difflib.py:248(set_seq2)

0.000

0.000

0.000

0.000

difflib.py:293(__chain_b)

2.240

 

0.000

 

2.240

 

0.000

difflib.py:32(_calculate_ratio)

1.590

0.000

1.590

0.000 difflib.py:344(find_longest_match)

0.100

0.000

2.690

0.000 difflib.py:454(get_matching_blocks)

28317/6190

1.000

0.000

2.590

0.000 difflib.py:480(__helper)

0.450

0.000

3.480

0.001 difflib.py:595(ratio)

0.240

0.000

0.240

0.000 difflib.py:617(<lambda>)

8.690

 

0.000

 

9.760

 

0.000

difflib.py:621(quick_ratio)

2.950

 

0.000

 

4.020

 

0.000

difflib.py:650(real_quick_ratio)

4.930

4.930

23.610

23.610

difflib.py:662(get_close_matches)

0.010



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 56; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.012 с.)