with unir two libreria datos dataframes data concatenar columns columna agrupar agregar python regex algorithm nlp

python - two - Algoritmo para unir el texto natural en el correo



unir dataframes python (4)

En el ejemplo que publica, la longitud de línea es suficiente.

No hay un algoritmo perfecto; incluso los seres humanos clasificarán las líneas de manera diferente.

Sugiero usar la longitud de la línea hasta que encuentre un ejemplo de contador, en cuyo punto revise su algoritmo. Repita hasta que el problema se resuelva a su satisfacción.

Necesito separar textos / oraciones naturales y coherentes en correos electrónicos de listas, firmas, saludos, etc., antes de continuar con el procesamiento.

ejemplo:

Hola Tom,

el último lunes hicimos bla bla, lore Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.

  • lista el elemento 2
  • lista el elemento 3
  • lista el elemento 3

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid x ea commodi consequat. Quis aute iure reprehenderit en voluptate velit

Saludos, K.

--- line-of-funny-characters - #######

ejemplo inc.

33 calle del mal, londres

móvil: 00 234534/234345

Idealmente, el algoritmo coincidiría solo con las partes en negrita.

¿Hay algún enfoque recomendado, o hay incluso algoritmos existentes para ese problema? ¿Debería intentar expresiones regulares aproximadas o más elementos estadísticos basados ​​en el número de marcas de puntuacion, longitud, etc.?


Es necesario pasar por cosas serias de PNL para realizar el procesamiento deseado (depende del nivel de precisión que espere y de la aleatoriedad y la vaguedad de los datos de entrada de correo electrónico para su código).

Lee este . Ver la sección de referencias para otras cosas relevantes.

Esto trata de diferentes problemas de clasificación pero implica operar en el texto del correo electrónico.


Necesitará muchas heurísticas para obtener una aproximación de una solución, así que aquí hay una: puede cortar cualquier cosa después de un sigdash (guión-espacio-guión), que los mensajes de correo electrónico que cumplen con las normas utilizan para separar el cuerpo del mensaje de la firma.

Otro enfoque que puede usar es almacenar copias de correos electrónicos del mismo remitente; esto debería permitirle extraer elementos que son iguales o similares en cada mensaje (como saludos y firmas) y detectar cómo hace su cita el cliente de correo.


Si su única tarea es pescar las partes en negrita, observe cómo el texto en negrita se implementó técnicamente en su base de datos de correo. Por ejemplo, si es html, podría tener algo como esto:

Hola Tom,

el último lunes hicimos bla bla, lore Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.

list item 2 list item 3 list item 3

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid x ea commodi consequat. Quis aute iure reprehenderit en voluptate velit

Saludos, K.

--- line-of-funny-characters - #######

Entonces puedes ejecutar el siguiente código:

import re # save the mail above as variable MailAbove print re.findall(r''<b>(.*?)</b>'',MailAbove)

Resultado:

[''El último lunes hicimos bla bla, lore Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.'', ''Ut enim ad min veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid x ea commodi consequat. Quis aute iure reprehenderit en voluptate velit '']

Editar : del comentario se deduce que no entendí bien la pregunta. En general, tales tareas son un proceso de varias etapas: aplica algunos métodos, luego ve el resultado y lo que se está perdiendo o está por error, luego realiza correcciones o agrega nuevos métodos y ve cuál es el resultado.
Te recomiendo que leas esto : un excelente tutorial / libro sobre cómo resolver tareas como la tuya y más allá.