2013-08-12 1 views
10

Я нашел этот предыдущий вопрос на SO: N-grams: Explanation + 2 applications. О.П. привел этот пример, и спросил, если это было правильно:Что такое n грамм?

Sentence: "I live in NY." 

word level bigrams (2 for n): "# I', "I live", "live in", "in NY", 'NY #' 
character level bigrams (2 for n): "#I", "I#", "#l", "li", "iv", "ve", "e#", "#i", "in", "n#", "#N", "NY", "Y#" 

When you have this array of n-gram-parts, you drop the duplicate ones and add a counter for each part giving the frequency: 

word level bigrams: [1, 1, 1, 1, 1] 
character level bigrams: [2, 1, 1, ...] 

Кто-то в разделе ответов подтвердил это было правильно, но, к сожалению, я немного потерял за что я не в полной мере понять все остальное, что было сказал! Я использую LingPipe и следую учебнику, в котором говорится, что я должен выбрать значение от 7 до 12, но без указания причины.

Что такое хорошее значение nGram и как его принять во внимание при использовании инструмента, такого как LingPipe?

Edit: Это был учебник: http://cavajohn.blogspot.co.uk/2013/05/how-to-sentiment-analysis-of-tweets.html

ответ

13

N-граммы являются просто все комбинации соседних слов или букв длины п, которые вы можете найти в вашем тексте. Например, с учетом слова fox все 2 грамма (или «bigrams») равны fo и ox. Вы также можете подсчитать границу слова - это расширит список из 2-граммов до #f, fo, ox и x#, где # обозначает границу слова.

Вы можете сделать то же самое на уровне слова. В качестве примера текст hello, world! содержит следующие биграммы: # hello, hello world, world #.

Основная точка n-граммов заключается в том, что они фиксируют структуру языка со статистической точки зрения, например, какую букву или слово, вероятно, следует за данным. Чем дольше n-грамм (чем выше n), тем больше контекста вы должны работать. Оптимальная длина действительно зависит от приложения - если ваши n-граммы слишком короткие, вы можете не заметить важные отличия. С другой стороны, если они слишком длинны, вы можете не улавливать «общие знания» и придерживаться конкретных случаев.

+0

Так меньше Ngram, тем больше сравнений и тем более точный анализ? Я пытаюсь понять, почему в этом учебнике предлагается число от 7 до 12. – user2649614

+0

Итак, для анализа настроений в твитах, как мне выбрать номер? Просто удача? – user2649614

+0

Я думаю, что самый простой способ найти лучшее число - экспериментировать. В качестве примера вы можете разделить свои учебные данные в две половины, тренироваться в первом тайме, а затем использовать число, которое дает вам лучшие результаты со вторым. Или попробуйте чайные листья! – zoul

1

n-gram - это n-tuple или группа из n слов или символов (граммов, для фрагментов грамматики), которые следуют друг за другом. Таким образом, n из 3 слов из вашего предложения будет выглядеть как «Я живу», «Я живу», «Живу в Нью-Йорке», «в Нью-Йорке». Это используется для создания индекса того, как часто слова следуют друг за другом. Вы можете использовать это в Markov Chain, чтобы создать что-то, что будет похоже на язык. Когда вы заполняете отображение распределений групп слов или групп символов, вы можете перекомпилировать их с вероятностью, что выход будет близок к естественному, чем длиннее n-грамм.

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

+0

У вас есть рекомендация по анализу nrram для анализа твитов? – user2649614

+0

Ответ на мой вопрос, это зависит от ваших целей в вашем анализе. Вы просто ищете тенденции хеш-тренда или общие фразы или синтаксический анализ для трендов группы слов? – codethulhu

+0

Извините за задержку в ответе. Я собираю все твиты, которые я могу со словами (manchester united, man united, man utd, mufc), и я хочу проанализировать общее настроение в этих твитах - являются ли они положительными или отрицательными. Это всего лишь упрощенная версия моего инструмента (у меня более сложная версия на Python). Я уже создал классификатор, но в моем созданном классификаторе я использовал nGram из 7, не понимая, почему, как я уже сказал, я просто выбрал число от 7 до 12, как рекомендовано моим учебником. – user2649614

 Смежные вопросы

  • Нет связанных вопросов^_^