Что такое n грамм?

Я нашел этот предыдущий вопрос по SO: N-граммы: объяснение + 2 приложения. ОП привел этот пример и спросил, был ли он правильным:

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?

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

Ответ 1

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

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

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

Ответ 3

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

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

Ответ 4

Присутствует ли N-грамм больше, чем значение n = 3 (триграммы)?

Если да, то кто-нибудь Пожалуйста, дайте мне N граммов для n = 4, n = 5, n = 6 и n = 7 для предложения " собака, которая лает не кусается " и до какого значения N мы можем найти th N граммов. Вот и я giving-

Unigrams (n = 1): собака, которая лает, не кусается

Биграммы (n = 2): собака, которая лает, лает, не кусается

Триграммы (n = 3): собака, которая лает, что лает, лает нет, не кусается

Скажи мне, если это правильно.