Для циклов в JavaScript

TL; DR

Чтобы загрузить конкретный набор данных / модели, используйте функцию nltk.download(), например. если вы хотите загрузить токенизатор предложения punkt, используйте:

$ python3
>>> import nltk
>>> nltk.download('punkt')

Если вы не знаете, какие данные / модель вам нужны, вы можете начать с основного списка данных + моделей с:

>>> import nltk
>>> nltk.download('popular')

Он загрузит список «популярных» ресурсов, в том числе:


      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

EDITED

В случае, если кто-либо избегает ошибок при загрузке больших наборов данных из nltk, из https://stackoverflow.com/a/38135306/610569

$ rm /Users//nltk_data/corpora/panlex_lite.zip
$ rm -r /Users//nltk_data/corpora/panlex_lite
$ python

>>> import nltk
>>> dler = nltk.downloader.Downloader()
>>> dler._update_index()
>>> dler._status_cache['panlex_lite'] = 'installed' # Trick the index to treat panlex_lite as it's already installed.
>>> dler.download('popular')

Обновлено

Из v3.2.5 NLTK имеет более информативное сообщение об ошибке , когда ресурс nltk_data не найден, например:

>>> from nltk import word_tokenize
>>> word_tokenize('x')
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/l/alvas/git/nltk/nltk/tokenize/__init__.py", line 128, in word_tokenize
    sentences = [text] if preserve_line else sent_tokenize(text, language)
  File "/Users//alvas/git/nltk/nltk/tokenize/__init__.py", line 94, in sent_tokenize
    tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
  File "/Users/alvas/git/nltk/nltk/data.py", line 820, in load
    opened_resource = _open(resource_url)
  File "/Users/alvas/git/nltk/nltk/data.py", line 938, in _open
    return find(path_, path + ['']).open()
  File "/Users/alvas/git/nltk/nltk/data.py", line 659, in find
    raise LookupError(resource_not_found)
LookupError: 
**********************************************************************
  Resource punkt not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('punkt')

  Searched in:
    - '/Users/alvas/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
    - ''
**********************************************************************

Связанный

-13
задан Matt 22 December 2012 в 16:06
поделиться

6 ответов

в соответствии с вашим обновлением, я думаю, вам не нужен цикл for, вам нужно это,

demo

function countdown(integer) {
   var time = setInterval(function(){
        document.getElementById("cds").value="->"+(integer--)+"<-"
        if (integer == 0) clearInterval(time);
    },1000);
}​
3
ответ дан 10 September 2019 в 04:36
поделиться
for( var i = integer; i > 0 ; i-- ) 
{
    document.write(i);
}
19
ответ дан 10 September 2019 в 04:36
поделиться

Быстрее (я проверил) и легче читать ...

var i = 100;
while(i--) {
   document.write(i);
}
1
ответ дан 10 September 2019 в 04:36
поделиться

Вы можете использовать приведенный ниже сценарий.

for( var i = integer; i > 0 ; i-- ) 
{
    document.write(i);
}
0
ответ дан 10 September 2019 в 04:36
поделиться

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

<html>
  <head>
    <script type="text/javascript">
    function countdown(count) {
      document.getElementById("cds").value = count;
      if (count > 0) {
        setTimeout("countdown(" + (count - 1) + ")", 1000);
      }
    }
    </script>
  </head>
  <body onload="countdown(10)">
    <input type="text" id="cds" value="0" />
  </body>
</html>

Уловка состоит в том, чтобы поместить вызов рекурсии в функцию setTimeout и окружить его условием, которое останавливает обратный отсчет при достижении 0.

0
ответ дан 10 September 2019 в 04:36
поделиться

Цикл for выполняется сразу (не дожидаясь срабатывания setTimeout ), и, следовательно, ваш код установит целое число количество таймеров одновременно (с интервалом в микросекунды), и только последний (где i = 1) будет виден пользователю. Вы должны сделать это как:

var counter = integer;
setTimeout("update();", 1000);
function update()
{
    document.getElementById("cds").value= "->" + counter + "<-";
    if(--counter == 0)
        return;
    setTimeout("update();", 1000);
}
2
ответ дан 10 September 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: