Я использую Lemmatizer Wordnet через NLTK на Brown Corpus (чтобы определить, используются ли в нем существительные больше в их единственной форме или их множественной форме).
т.е. from nltk.stem.wordnet import WordNetLemmatizer
l = WordnetLemmatizer()
Возможно ли ускорить работу Wordmat Lemmatizer?
Я заметил, что даже самые простые запросы, такие как один ниже занимает довольно много времени (по крайней мере, второго или два).
l("cats")
Предположительно это происходит потому, что интернет-соединение должно быть сделано, чтобы Wordnet для каждого запроса? ..
мне интересно, если есть способ по-прежнему использовать WordNet лемматизатор, но он выполняет гораздо быстрее? Например, поможет ли мне вообще скачать Wordnet на мою машину? Или любые другие предложения?
Я пытаюсь выяснить, может ли Lemmatizer Wordnet ускоряться, а не пытаться использовать другой lemmatizer, потому что я нашел, что он работает лучше всего среди других, таких как Porter и Lancaster.
Ключ в том, что первый запрос также выполняет некоторую инициализацию. После этого все быстро. – justhalf
lru_cache замечательный, но недоступный для Python 2.7: можно использовать repoze.lru (http://docs.repoze.org/lru/) для аналогичной функции. – Vorty
@Vorty Пример, который я дал, использует backport из Python 3 functools, который имеет lru_cache: https://github.com/MiCHiLU/python-functools32 – bcoughlan