Romxhacking Romxhacking
- Nasío pa'jakear -
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Identifíquese para revisar sus mensajesIdentifíquese para revisar sus mensajes   ConectarseConectarse 


Menú principal
Portal
Foros
F.A.Q.
Buscar
Lista de miembros
Grupos de usuarios
Perfil

Usuario
Nombre de Usuario:

Contraseña:

 Recordarme



He olvidado mi contraseña

¿Aún no tiene su cuenta?
Puede registrarse Aquí, es GRATIS.


Anuncio del administrador
No pretendemos solucionar todos los problemas ni ser referencia de nada, simplemente nos reunimos aquí para charlar de nuestras cosas.
NO SE RESPONDERÁ A NADA POR PRIVADO, QUE EL FORO ESTÁ PARA ALGO

Memoria de traducción / búsqueda de duplicados, etc. etc.

 
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Leeg



Sexo: Sexo:Hombre
Registrado: 20 Mar 2014
Edad: 26
Mensajes: 377
Estado: Offline
MensajePublicado: Thu Jul 14, 2016 9:43 pm    Título del mensaje: Memoria de traducción / búsqueda de duplicados, etc. etc. Responder citando

¡Hola!

Sigo con Devil Survivor traduciendo con la herramienta que programé pero me estoy encontrando con un problemilla. Estoy utilizando un script de Levenshtein distance para ver si hay segmentos duplicados o con un 70% de similitud al que se está traduciendo. Al principio la cosa iba bien, pero en cuanto la memoria de traducción (un XML) se ha ido haciendo más y más grande (865 kbps actualmente, unas 37.000 líneas de texto) el rendimiento ha caído en picado y ahora tarda bastante en mostrar resultados (se congela uno o dos segundos el programa al cambiar de segmento mientras está buscando similitudes con el script de Levenshtein distance). Lo cierto es que es poco tiempo pero hace que el cambio entre segmentos ya no sea inmediato y a la larga me hace perder mucho tiempo.

Entonces mi pregunta es... ¿alguno conoce alguna manera de implementar algo parecido pero que funcione correctamente? ¿Los programas comerciales tipo SDL Trados o memoQ que hacen uso de memorias de traducción cómo funcionan en este sentido?

(También puede ser que el script esté bien pero que mi implementación sea mala...)
https://github.com/Artuvazro/DSSE/blob/master/Devil%20Survivor%20Script%20Editor/MainWindow.xaml.cs#L450

Gracias Smile
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
mz



Sexo: Sexo:Hombre
Registrado: 22 Sep 2011
Edad: 33
Mensajes: 58
Ubicación: Argentina
Estado: Offline
MensajePublicado: Fri Jul 15, 2016 1:39 am    Título del mensaje: Responder citando

No tengo nada de experiencia con esto, pero ¿no podrías simplemente calcular la Levenshtein distance entre todos los bloques de texto originales y guardar los resultados en una base de datos o algo así?
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5436
Estado: Offline
MensajePublicado: Fri Jul 15, 2016 10:46 am    Título del mensaje: Responder citando

Yo me lo planteo de otra forma: ¿merece la pena complicarse?

Mira la memoria que vas consumiendo al hacer las comparaciones, a ver cuánta te va dejando en cada paso.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Leeg



Sexo: Sexo:Hombre
Registrado: 20 Mar 2014
Edad: 26
Mensajes: 377
Estado: Offline
MensajePublicado: Fri Jul 15, 2016 12:07 pm    Título del mensaje: Responder citando

mz escribió:
No tengo nada de experiencia con esto, pero ¿no podrías simplemente calcular la Levenshtein distance entre todos los bloques de texto originales y guardar los resultados en una base de datos o algo así?


¿Quieres decir calcularla de golpe al principio para todos los segmentos? Mmm... Pues no es mala idea, no. No se me ocurre ahora mismo como implementarlo pero no es mala idea, creo. Habría que guardar la relación entre segmentos en una base de datos sí, pero no sé si se me complicará mucho la cosa, voy a pensarlo Wink

CUE escribió:
Yo me lo planteo de otra forma: ¿merece la pena complicarse?

Sí, me ahorra mucho tiempo XD

CUE escribió:
Mira la memoria que vas consumiendo al hacer las comparaciones, a ver cuánta te va dejando en cada paso.

Memoria no tengo ni idea porque no lo he mirado con visual studio, pero la CPU se pone a tope cada vez que se pone a calcular la distancia. Yo creo que el problema es que lo tengo implementado en un while y se va quedando todo en memoria y no se limpia en cada iteración o algo. Lo miraré más a fondo poniendo breakpoints por ahí para ver exactamente qué paso hace que se congele el programa.

Gracias por las respuestas.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5436
Estado: Offline
MensajePublicado: Fri Jul 15, 2016 12:36 pm    Título del mensaje: Responder citando

Por eso te lo comento. Esas pausas suelen ser cosa de falta de memoria, y como usáis lenguajes que la gestionan sin que el usuario tome parte, más de una vez pasa algo similar.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
gadesx
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Edad: 28
Mensajes: 1976
Ubicación: El puche
Estado: Offline
MensajePublicado: Fri Jul 15, 2016 3:18 pm    Título del mensaje: Responder citando

un poco offtopic:
El script del baten kaitos origins en xml, casi 4MB
En el famoso notepad++ petaba cuando le daba la gana solo con abrirlo y guardar,
tuve que cambiar el textpad y sin problemas.
_________________
Mi blog y mi droga: http://gadesxscene.blogspot.com/
Volver arriba
Ver perfil del usuario Enviar mensaje privado [ Oculto ] Visitar sitio web del autor MSN Messenger
KeKo



Sexo: Sexo:Hombre
Registrado: 20 Feb 2015
Edad: 23
Mensajes: 28
Estado: Offline
MensajePublicado: Tue Jul 19, 2016 7:14 pm    Título del mensaje: Responder citando

Hasta el momento yo solo he utilizado las memorias del SDL Trados Studio (compañía para la que empiezo a trabajar el mes que viene Embarassed) y las de OmegaT. La ventaja de OmegaT es que es una herramienta gratuita al contrario que Trados.

Si tu tienes una memoria en un formato que sea compatible con alguna de esas 2 herramientas, cuando abras el texto que vas a traducir todos los resultados que sean concordancias totales, es decir que el fragmento a traducir sea igual que el de tu memoria, este se rellanará solo automáticamente todas las veces que salga en el texto y solo tendrás que darle a la opción de confirmar fragmento.

Sin duda Trados tiene más capacidad para soportar memorias de traducción grandes, por lo que no debería no se te debería congelar el ordenador a la hora de que el programa busque concordancias, pero puedes probar también con OmegaT a ver si te sirve alguno de los dos.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Leeg



Sexo: Sexo:Hombre
Registrado: 20 Mar 2014
Edad: 26
Mensajes: 377
Estado: Offline
MensajePublicado: Wed Jul 20, 2016 9:20 am    Título del mensaje: Responder citando

Keko:

Conozco ambos programas y sé utilizarlos XD. Lo que yo quería saber cuando preguntaba "cómo funcionan" era la mecánica que seguían a la hora de gestionar sus memorias de traducción. Lo único que conozco es la estructura del formato .tmx y porque es libre, pero eso ya lo estoy usando en mi programa. Lo que desconozco es si usan algo tipo Levenshtein distance o parecido para obtener las concordancias... Eso es lo que estoy usando yo de momento pero el rendimiento es muy malo Sad

Por cierto, suerte con el curro en SDL Smile


Y ya sé lo que falla en mi script, es el while. La implementación no es la adecuada pero no sé de momento cómo arreglarlo. Cuando el segmento concordante es exactamente igual al que se está traduciendo, el resultado es inmediato porque lo hago con una query de LinQ. El problema es cuando no encuentra nada exactamente igual y entonces salta a mi script de fuzzy match donde tengo Levenshten distance en un while que recorre todos los segmentos, ahí es donde se cuelga hasta que recorre todo. Supongo que tendré que buscar una forma de hacer que funcione con LinQ.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
KeKo



Sexo: Sexo:Hombre
Registrado: 20 Feb 2015
Edad: 23
Mensajes: 28
Estado: Offline
MensajePublicado: Wed Jul 20, 2016 7:48 pm    Título del mensaje: Responder citando

Leeg escribió:
Keko:

Conozco ambos programas y sé utilizarlos XD. Lo que yo quería saber cuando preguntaba "cómo funcionan" era la mecánica que seguían a la hora de gestionar sus memorias de traducción. Lo único que conozco es la estructura del formato .tmx y porque es libre, pero eso ya lo estoy usando en mi programa. Lo que desconozco es si usan algo tipo Levenshtein distance o parecido para obtener las concordancias... Eso es lo que estoy usando yo de momento pero el rendimiento es muy malo Sad


My bad entonces, pensaba que buscabas un programa y no el script en sí jajaja. En eso no puedo ayudar, mis conocimientos informáticos son muy limitados Sad
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Leeg



Sexo: Sexo:Hombre
Registrado: 20 Mar 2014
Edad: 26
Mensajes: 377
Estado: Offline
MensajePublicado: Tue Aug 23, 2016 2:19 pm    Título del mensaje: Responder citando

Publico aquí para avisar de que estos días he estado mirando este asuntillo y he logrado reducir considerablemente el cuelgue que se producía al pasar de un segmento a otro cuando buscaba fuzzy matches en la memoria de traducción. Ahora es mucho más tolerable, a penas unos milisegundos, lo que no sé es si aguantará así conforme vaya pesando más la memoria, el tiempo dirá. Al final lo arreglé quitando salvajadas del loop ese donde se incluye el cálculo de la Levensthein distance, como por ejemplo eliminando declaraciones de variables dentro del loop, cosa que volvía loco al Garbage Collector (definir cosas dentro de un loop es mal). Y también lo he optimizado un poquillo a base de quitar cosas innecesarias, como que se copien los segmentos que van saliendo como fuzzy matches consecutivamente y se vayan sustituyendo hasta dar con el más alto cuando acaba el loop, ahora solo se copia el más alto. Tengo que mirar si lo puedo optimizar más pero de momento ya me doy con un canto en los dientes. ;D
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas Todas las horas están en GMT + 1 Hora
Página 1 de 1

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

Temas Relacionados
 Temas   Respuestas   Autor   Lecturas   Último Mensaje 
No hay mensajes nuevos Se puede editar algo del Legend of heroes trails in the sky? 1 gadesx 1635 Thu Apr 16, 2015 8:08 pm
CUE Ver último mensaje
No hay mensajes nuevos ¿Este programa puede servir para algo? 2 gadesx 2087 Sat Sep 21, 2013 8:22 am
CUE Ver último mensaje
No hay mensajes nuevos Algo para este "formato"? 3 cralso 2360 Tue Aug 20, 2013 7:53 am
CUE Ver último mensaje
No hay mensajes nuevos Light Crusader o algo 10 gadesx 4191 Sun Aug 04, 2013 1:07 pm
Auron Ver último mensaje
No hay mensajes nuevos Intentando aprender algo de romhack 13 tchusami 5568 Sat Nov 24, 2012 11:05 am
CUE Ver último mensaje
 


Crear foro gratis - Powered by phpBB © 2001, 2005 phpBB Group
subRebel style by ktauber