Búsqueda fonética de lenguas indias

Quiero comparar las cadenas fonéticamente en mi aplicación Android. Pero el caso especial aquí es, quiero comparar palabras del idioma indio escritas en inglés. Por ejemplo, quiero comprobar si "Edhu" "Adhu" "Yethu" son fonéticamente iguales, todos significan lo mismo en idioma tamil. Pero las personas que usan el guión inglés para escribir idiomas indios usan diferentes ortografías para hacer la palabra. ¿Cómo comparo palabras en este caso?

Intenté Levenshtein. Pero no estoy seguro de cómo convertir el número que vuelve a la igualdad.

He probado Soundex, Soundex códigos no son los mismos cuando la primera letra de la palabra cambia. Pero es capaz de averiguar las partes de sonido similar. No entiendo cómo funciona.

soundex.encode("Yethu") (soundex.encode("Edhu")) (soundex.encode("adhu")) Y300 E300 A300 

Entiendo que quieres tomar palabras escritas en inglés, descomponerlas fonéticamente, y luego agrupar palabras que están escritas de manera diferente, pero tienen las mismas representaciones fonéticas.

Para esto SoundEx es una solución del 90%, siempre y cuando las personas que estén deletreando las palabras en inglés estén usando las consonantes correctas cuando están traduciendo las palabras del tamil al inglés.

Debería ser capaz de soltar el primer valor de la representación SoundEx y usarlo como su codificación cuando la primera letra es una vocal.

La razón es que SoundEx ( https://en.wikipedia.org/wiki/Soundex ) realiza sus codificaciones sólo en las consonantes en las palabras que se presenta con. Deshace todas las vocales más h y w – A menos que – la vocal sea la primera letra en la palabra – que explica porqué sus valores son todo ligeramente diferentes, pero solamente en la primera letra que codifica.

En cuanto a los ceros, las codificaciones de SoundEx son por definición 1 letra y 3 números (de 1 a 6 solamente), solo tiene 1 consonante en cada palabra (d o t) y SoundEx los asigna al número 3. ya que no hay Más consonantes, creo que agrega 2 ceros para el cumplimiento. Así usted consigue Letter300

Si va a seguir utilizando SoundEx para su aplicación, debe tener en cuenta que sólo puede darle 26 * 6 * 6 * 6 = 5616 codificaciones únicas basadas en su Número de Carta (1-6) Número (1-6) Esquema del número (1-6). Lo que significa que las codificaciones fonéticas no serán únicas y algunas palabras que son radicalmente diferentes tendrán codificaciones SoundEx que chocan.

  • ¿Cómo puedo configurar el tamaño de vista previa de la cámara a pantalla completa con la API de Android?
  • ¿Por qué declarar un argumento de función para ser definitivo?
  • Suprimir Android Aviso de campo no leído con byte
  • ¿Cómo analizar json array con múltiples objetos por gson?
  • ¿Cómo cambiar el color del texto y la flecha en la barra de herramientas?
  • ¿Cómo puedo actualizar mi ListFragment cuando vuelve al diseño de la pila trasera?
  • publicar imagen Tipo mime no válido
  • Escribir byte en Archivo en Java
  • Conflicto con el paquete Android - Amazon SNS
  • Aplicación de chat para Android mediante un servidor XMPP y Google Cloud Messaging (o la nueva mensajería de Cloud de Firebase) para notificaciones por push
  • Excepción Gradle de Android: "Multiple dex files define", clases duplicadas bajo exploded-aar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.