Ao fazer o processamento da linguagem natural, pode-se pegar um corpus e avaliar a probabilidade da próxima palavra ocorrer em uma sequência de n. n é geralmente escolhido como 2 ou 3 (bigrams e trigramas).
Existe um ponto conhecido em que o rastreamento dos dados para a enésima cadeia se torna contraproducente, dado o tempo necessário para classificar um corpus específico uma vez nesse nível? Ou dado o tempo necessário para procurar as probabilidades de um dicionário (estrutura de dados)?
text-mining
natural-language
jonsca
fonte
fonte
Respostas:
Você deve procurar por tabelas ou plotagens de perplexidade versus n-grama .
Exemplos:
http://www.itl.nist.gov/iad/mig/publications/proceedings/darpa97/html/seymore1/image2.gif :
http://images.myshared.ru/17/1041315/slide_16.jpg :
http://images.slideplayer.com/13/4173894/slides/slide_45.jpg :
A perplexidade depende do seu modelo de idioma, tamanho de n-grama e conjunto de dados. Como sempre, há uma troca entre a qualidade do modelo de linguagem e o tempo que leva para ser executado. Atualmente, os melhores modelos de idiomas são baseados em redes neurais; portanto, a escolha do tamanho de n-grama é um problema menor (mas você precisa escolher o (s) tamanho (s) do filtro se usar CNN, entre outros hiperparâmetros ...).
fonte
Sua medida de "contraproducente" pode ser arbitrária - por exemplo, com muita memória rápida, ele poderia ser processado mais rapidamente (mais razoavelmente).
Depois de dizer isso, o crescimento exponencial aparece e, pelas minhas próprias observações, parece estar em torno da marca de 3-4. (Eu não vi nenhum estudo específico).
Os trigramas têm uma vantagem sobre os bigramas, mas são pequenos. Eu nunca implementei 4 gramas, mas a melhoria será muito menor. Provavelmente uma ordem similar de magnitude diminui. Por exemplo. se os trigramas melhoram 10% as coisas, então uma estimativa razoável para 4 gramas pode ser 1% de melhoria em relação aos trigramas.
No entanto, o verdadeiro assassino é a memória e a diluição das contagens numéricas. Com um10 , 000 palavra única, então um modelo de bigram precisa 100002 valores; um modelo de trigrama precisará100003 ; e 4 gramas precisarão100004 . Agora, tudo bem, essas serão matrizes esparsas, mas você entendeu. Há um crescimento exponencial no número de valores e as probabilidades ficam muito menores devido a uma diluição das contagens de frequência. A diferença entre a observação 0 ou 1 se torna muito mais importante e, no entanto, as observações de frequência de 4 gramas individuais caem.
Você precisará de um corpus enorme para compensar o efeito de diluição, mas a Lei de Zipf diz que um corpus enorme também terá palavras ainda mais únicas ...
Especulo que é por isso que vemos muitos modelos, implementações e demonstrações de bigram e trigram; mas não há exemplos de 4 gramas totalmente funcionais.
fonte