sentiment analysis - online - ¿Qué es exactamente un gramo n?
sentiment analysis r (3)
Encontré esta pregunta anterior en SO: N-grams: Explicación + 2 aplicaciones . El OP dio este ejemplo y preguntó si era correcto:
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, ...]
Alguien en la sección de respuestas confirmó que esto era correcto, ¡pero desafortunadamente estoy un poco perdido más allá de eso ya que no entendí completamente todo lo que se dijo! Estoy usando LingPipe y siguiendo un tutorial que dice que debo elegir un valor entre 7 y 12, pero sin decir por qué.
¿Qué es un buen valor nGram y cómo debo tenerlo en cuenta al utilizar una herramienta como LingPipe?
Edición: Este fue el tutorial: http://cavajohn.blogspot.co.uk/2013/05/how-to-sentiment-analysis-of-tweets.html
Los N-gramos son simplemente todas las combinaciones de palabras adyacentes o letras de longitud n que puedes encontrar en tu texto fuente. Por ejemplo, dada la palabra fox
, todos los 2 gramos (o "bigrams") son fo
y ox
. También puede contar el límite de la palabra, que expandiría la lista de 2 gramos a #f
, fo
, ox
y x#
, donde #
denota un límite de la palabra.
Puedes hacer lo mismo en el nivel de palabra. Como ejemplo, el hello, world!
el texto contiene los siguientes bigramas a nivel de palabra: # hello
, hello world
, world #
.
El punto básico de n-grams es que capturan la estructura del lenguaje desde el punto de vista estadístico, como qué letra o palabra es probable que siga a la dada. Cuanto más largo sea el n-gramo (cuanto mayor sea la n ), más contexto tendrá para trabajar. La longitud óptima realmente depende de la aplicación: si los n-gramas son demasiado cortos, es posible que no logre capturar diferencias importantes. Por otro lado, si son demasiado largos, es posible que no logre capturar el "conocimiento general" y solo se adhiera a casos particulares.
Por lo general, una imagen vale más que mil palabras.
Fuente: http://recognize-speech.com/language-model/n-gram-model/comparison
Un n-gramo es un n-tuple o grupo de n palabras o caracteres (gramos, para piezas de gramática) que se suceden uno a otro. Entonces, una n de 3 para las palabras de tu oración sería como "# Vivo", "Vivo en", "Vivo en NY", "en NY #". Esto se utiliza para crear un índice de la frecuencia con que las palabras se siguen unas a otras. Puedes usar esto en una Cadena de Markov para crear algo que será similar al idioma. A medida que rellena un mapa de las distribuciones de grupos de palabras o grupos de caracteres, puede combinarlos con la probabilidad de que la salida sea cercana a la natural, cuanto más largo sea el n-gramo.
Un número demasiado alto, y su salida será una copia palabra por palabra del original, un número demasiado bajo, y la salida será demasiado desordenada.