Pergunta

Eu sou visto muitos exemplos de usar Correntes de Markov Para gerar palavras aleatórias com base nos dados de origem , mas muitas vezes parecem um pouco excessivamente mecânicas e abstratas para mim. Estou tentando desenvolver um melhor. Eu acredito que parte do problema é que eles confiam inteiramente na ocorrência estatística geral de pares, e ignoram a tendência das palavras para começar e terminar de certas maneiras. Por exemplo, se você usar os 1000 nomes de bebês como dados de origem, a letra J é relativamente rara geral, mas é a segunda letra mais comum para nomes para start com. Ou, se você estiver usando dados de fonte latina, terminações de palavra como - e -us seria comum terminações , mas não tão comum se você considerar todos os pares o mesmo.

Então, eu estou basicamente tentando montar um gerador de palavras de cadeia de Markov que leva em conta a maneira como as palavras começam e terminam nos dados de origem.

Conceitualmente, isso faz sentido para mim, mas não consigo descobrir como implementar isso de uma perspectiva de software. Estou tentando montar uma pequena ferramenta PHP que permite que você caia nos dados de origem (por exemplo, uma lista de 1000 palavras) a partir do qual ela gerará uma variedade de palavras aleatórias com partidas, se mistura e finais realistas. (Ao contrário da maioria dos geradores de palavras de Markov, que são baseados na ocorrência estatística de pares em geral.)

Eu também gostaria de fazer isso com o comprimento da palavra determinado pelos dados de origem, se possível; isto é, a divisão de comprimento das palavras geradas aleatoriamente deve ser aproximadamente o mesmo que a divisão de comprimento dos dados de origem.

Alguma idéia seria massivamente apreciada! Obrigado.

Foi útil?

Solução

A parte sobre não respeitar os primórdios e finais comuns não é verdadeira se você considerar "espaço entre palavras" para ser um símbolo - começos comuns terão altas freqüências após "espaço entre palavras" e finais comuns terão altas freqüênciasprecedendo "espaço entre palavras".O comprimento correto da palavra também se instala desse mais ou menos naturalmente - o número médio de letras que você produz antes de fazer a transição para um símbolo "espaço entre palavras" deve igualar o número médio de letras por palavra nos dados de treinamento, embora algo ema parte de trás da minha mente está me dizendo que a distribuição pode estar desligada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top