Приветствуйте в мире обработки естественного языка ^_^
Все, в чем Вы нуждаетесь, немного элементарных знаний и некоторые инструменты.
уже существуют инструменты, которые скажут Вам, если слово в предложении будет существительным, прилагательным или глаголом. Их называют теггеры частей речи . Как правило, они берут английский язык простого текста в качестве входа и производят слово, его основную форму и часть речи. Вот вывод популярного теггера частей речи 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 для Поэтов . Если бы Вы готовы вложить капитал в книгу по обработке естественного языка, я рекомендовал бы Основы статистической обработки естественного языка .
Единственная цель 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
}
$. 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.
Я думаю, вы хотите использовать $. AjaxStart () и $. AjaxStop () . Это позволит вам показывать и скрывать загружаемый gif в запросах ajax / JSON. Это также правильно, если выполняется несколько запросов ajax.
Я думаю, вы используете JSONP для вызова скрипта с другого сервера. Я сделал свою домашнюю работу, и нет никакого события beforeSend при вызове JSONP.