Cómo mantener caracteres especiales juntos en word_tokenize?
Tengo un problema de procesamiento del lenguaje natural (NLP) que involucra algunas tareas de codificación como “fnpunto->extraer&aislarr” y cuando uso word_tokenize
, el operador de asignación “->
” se divide de la siguiente manera ["fn_punto-", ">", "extraer.aislar_r"]
.
Hice lo siguiente:
from nltk.tokenize import word_tokenize
oracion = "La lista funcional fn_punto->extraer.aislar_r de tamaño 32 no es válida"
nueva_oracion = word_tokenize(oracion)
print(nueva_oracion)
¿Cómo mantener “->
” como una sola palabra ya que es un operador de asignación en el lenguaje de programación C?
davy.ai
Para mantener “
->
” como una sola palabra al usarword_tokenize
del paquetenltk.tokenize
, puedes usar una expresión regular para especificar que “->
” debe considerarse como un token único.Aquí hay un ejemplo:
Este código utiliza la función
re.findall
para tokenizar la oración usando la expresión regularr'\w+->\w+|\w+'
. Esta expresión regular encuentra una cadena de uno o más caracteres de palabra seguida de “->
” seguida de otra cadena de uno o más caracteres de palabra, o una cadena de uno o más caracteres de palabra sin “->
“.La salida de este código será:
Como puedes ver, la cadena “
fn_point->extract.isolate_r
” se trata como un único token.