beforeSend в $ .getJSON

Приветствуйте в мире обработки естественного языка ^_^

Все, в чем Вы нуждаетесь, немного элементарных знаний и некоторые инструменты.

уже существуют инструменты, которые скажут Вам, если слово в предложении будет существительным, прилагательным или глаголом. Их называют теггеры частей речи . Как правило, они берут английский язык простого текста в качестве входа и производят слово, его основную форму и часть речи. Вот вывод популярного теггера частей речи UNIX на первом предложении Вашего сообщения:

$ echo "Without getting a degree in information retrieval, I'd like to know if there exists any algorithms for counting the frequency that words occur in a given body of text." | tree-tagger-english 
# Word  POS     surface form
Without IN  without
getting VVG get
a   DT  a
degree  NN  degree
in  IN  in
information NN  information
retrieval   NN  retrieval
,   ,   ,
I   PP  I
'd  MD  will
like    VV  like
to  TO  to
know    VV  know
if  IN  if
there   EX  there
exists  VVZ exist
any DT  any
algorithms  NNS algorithm
for IN  for
counting    VVG count
the DT  the
frequency   NN  frequency
that    IN/that that
words   NNS word
occur   VVP occur
in  IN  in
a   DT  a
given   VVN give
body    NN  body
of  IN  of
text    NN  text
.   SENT    .

, Как Вы видите, это определило "алгоритмы", как являющиеся формой множественного числа (NNS) "алгоритма", и "существует" как являющийся спряжением (VBZ), "существуют". Это также определило "a" и как "детерминативы (DT)" - другое слово для статьи. Как Вы видите, теггер частей речи также маркировал пунктуацию.

, Чтобы сделать все кроме последней точки в Вашем списке, просто необходимо выполнить текст через теггер частей речи, отфильтровать категории, которые не интересуют Вас (детерминативы, местоимения, и т.д.) и считают частоты основных форм слов.

Вот некоторые популярные теггеры частей речи:

TreeTagger (двоичный файл только: Linux, Солярис, OS X)
Теггер GENIA (C++: скомпилируйте Ваш сам)
Стэнфордский теггер частей речи (Java)

, Чтобы сделать последнюю вещь в Вашем списке, Вам нужны больше, чем просто информация об уровне слова. Простой способ запуститься путем подсчета последовательности из [1 111] слова , а не просто сами слова. Их называют n-граммы . Хорошее место для запуска UNIX для Поэтов . Если бы Вы готовы вложить капитал в книгу по обработке естественного языка, я рекомендовал бы Основы статистической обработки естественного языка .

11
задан Quintin Par 28 November 2009 в 14:01
поделиться

4 ответа

Единственная цель beforeSend - добраться до необработанного объекта XHR (обычно для установки на нем заголовков HTTP). Она вам не нужна для запуска спинеров и тому подобного. Этот код здесь (из @petersendidit):

jQuery.ajax({
    url: url,
    dataType: "json",
    beforeSend: function(){
        $('.loading').show();
    }
});

лучше написать так:

$('.loading').show();
jQuery.ajax({
    url: url,
    dataType: "json"
});

Что означает, что если вам не нужны дополнительные опции в jQuery.ajax, то ваш оригинальный план по использованию jQuery.getJSON просто отличный. Итак, вы говорите, что хотите показать загрузку GIF, просто сделайте это и забудьте о beforeSend.

jQuery(".someSpinnerImage").show();
jQuery.getJSON("http://www.somedomain.com/someurl", function(data) {
    jQuery(".someSpinnerImage").hide();
    // Do something with data
}
34
ответ дан 3 December 2019 в 01:16
поделиться

$. GetJSON - это просто сокращенная функция для функции $ .ajax

get: function( url, data, callback, type ) {
   // shift arguments if data argument was ommited
   if ( jQuery.isFunction( data ) ) {
      callback = data;
      data = null;
   }
   return jQuery.ajax({
       type: "GET",
       url: url,
       data: data,
       success: callback,
       dataType: type
   });
}, 
getJSON: function( url, data, callback ) {
    return jQuery.get(url, data, callback, "json");
},

Так что, если вам когда-нибудь понадобится сделать что-то еще, тогда в базовых вызовах getJSON просто используйте $ .ajax, например:

jQuery.ajax({
    url: url,
    dataType: "json",
    beforeSend: function(){
        $('.loading').show();
    }
});

Другой вариант - использовать функции $. AjaxSend и $. AjaxComplete , но при этом эти функции будут вызываться до и после каждого вызова ajax.

6
ответ дан 3 December 2019 в 01:16
поделиться

Я думаю, вы хотите использовать $. AjaxStart () и $. AjaxStop () . Это позволит вам показывать и скрывать загружаемый gif в запросах ajax / JSON. Это также правильно, если выполняется несколько запросов ajax.

1
ответ дан 3 December 2019 в 01:16
поделиться

Я думаю, вы используете JSONP для вызова скрипта с другого сервера. Я сделал свою домашнюю работу, и нет никакого события beforeSend при вызове JSONP.

1
ответ дан 3 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

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