2009-11-04 7 views
6

Estoy construyendo una funcionalidad "¿quisiste decir?" En un motor de búsqueda interno, usando aspell y php (php-pspell).¿Cómo usar caracteres especiales en el diccionario personalizado de aspell?

Tengo un catálogo de productos y quiero que los nombres de esos productos también sean palabras en el diccionario, por lo que el "quise decir" puede sugerirlos.

El problema es que cuando intento crear un diccionario personalizado con funciones PHP pspell, recibo errores cuando las palabras contienen caracteres que no están en el rango az, como números, hifens, etc.

Por ejemplo :

iphone 3gs: se añade iPhone sin problemas, pero no es 3gs

blu-ray: no puede ser añadido debido a la -

¿es posible añadir ese tipo de palabra en una ¿diccionario? O aspell simplemente no los acepta?

+0

Tengo un problema similar: no puedo agregar una palabra alemana "Künstliche" a un diccionario personal inglés.Aspell se queja de que "el personaje (U + BC) puede no aparecer en medio de una palabra", incluso si utilizo las opciones "-d en-w_accents --encoding = utf-8" –

Respuesta

0

La mejor manera de hacerlo es reemplazar los caracteres especiales, incluido el espacio en blanco con alguna secuencia de teclas. decir xxx. Tendrás que hacer eso para todos los caracteres que estén fuera de los que aspell acepta.

2

Uno resource que puede ser útil. Usted debe ser capaz de añadir palabras con caracteres especiales mediante la configuración de su archivo de datos del lenguaje, pero hay un CAVIAT:

Sin embargo, tenga en cuenta que la adición de caracteres especiales puede tener consecuencias no deseadas debido a las limitaciones de Aspell. Por ejemplo, si el -' was accepted as a middle character, then every word with a - 'en él se marcará como un error ortográfico a menos que esa palabra exacta esté en el diccionario, incluso si ambas partes están en el diccionario. Además, teniendo un .' as an end character will cause the. ' ser parte de cualquier palabra mal escrita. Lo cual puede ser muy molesto si escribe mal una palabra al final de una oración.

+0

¿Puede describir en detalle cómo agregar un alemán? ¿palabra "Künstliche" a un diccionario personal inglés? –

0

Supongamos que el idioma de su diccionario es el inglés ("en") y luego busca el archivo en.dat en la instalación de aspell. en.dat es el archivo de datos de idioma y cada idioma tiene su propio archivo de datos llamado <lang>.dat. El archivo de datos debe estar presente en ubicación siguiente:

/usr/lib64/aspell/en.dat 

Ahora abre el archivo para editar:

vi /usr/lib64/aspell/en.dat 

Al final de este archivo añadir la siguiente línea:

special ' -*- 

special es la palabra clave que dice aspell que los siguientes caracteres deben tratarse como caracteres especiales. El formato para agregar caracteres especiales es:

char es el carácter sin letras en cuestión. begin, middle, end son un '-' o un '*'. Una estrella para comenzar significa que el personaje puede comenzar una palabra, un '-' significa que no puede. Lo mismo es cierto para el medio y el final. Artículo completo: http://www.webspeaks.in/2015/01/adding-special-characters-in-aspell-dictionary-for-php.html

Cuestiones relacionadas