Di que tengo una cadena de palabras: 'a b c d e f'
. Quiero generar una lista de términos de varias palabras de esta cadena.¿Cómo puedo generar términos de varias palabras recursivamente?
El orden de las palabras importa. El término 'f e d'
no se debe generar a partir del ejemplo anterior.
Editar: Además, no se deben omitir las palabras. 'a c'
o 'b d f'
no se debe generar.
lo que tengo en este momento:
doc = 'a b c d e f'
terms= []
one_before = None
two_before = None
for word in doc.split(None):
terms.append(word)
if one_before:
terms.append(' '.join([one_before, word]))
if two_before:
terms.append(' '.join([two_before, one_before, word]))
two_before = one_before
one_before = word
for term in terms:
print term
Lienzo:
a
b
a b
c
b c
a b c
d
c d
b c d
e
d e
c d e
f
e f
d e f
¿Cómo puedo hacer esto una función recursiva para que pueda pasar un número variable máximo de las palabras por término?
Aplicación:
voy a utilizar este para generar términos de varias palabras de texto legible en los documentos HTML. El objetivo general es un análisis semántico latente de un gran corpus (alrededor de dos millones de documentos). Esta es la razón por la cual el orden de las palabras importa (procesamiento del lenguaje natural y otras cosas).
Para simplificar he sustituido letras sueltas por palabras. – tgray
¿te refieres a "cantidad máxima variable de términos por palabras"? porque no tiene sentido para mí en su forma actual. – SilentGhost
Creo que la verdadera pregunta aquí es, ¿necesita ser recurrente para hacer el trabajo? ¿Hay algún requisito para la recursión aquí? –