-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ignorar els accents, dièresis, trencs i punts volats en la cerca i autocompleció #8
Comments
Hola Joan. Ignorar els diacrítics per mi voldria dir només els verbs que el diacrític serveix per diferenciar-los d'altres paraules. Vols dir que només verbs com "sé" o vols dir tots els accents en general? Gràcies |
No, em refereixo al diacrítics en sentit ampli (accents, dièresis, el trenc de la ç i el punt volat). És l'experiència que esperen els usuaris. Si cerquen "coneixer", "arguir", "alcar" o "pul.lular" haurien d'obtenir la flexió de "conèixer", "argüir", "alçar" o "pul·lular", respectivament. |
Hola Joan, Podem anar editant el primer comentari per anar-lo polint amb aquesta discussió i que reflecteixi el que volem fer? Gràcies De fet no parlem de diacrítics ja que un diacrític és "Un signe diacrític és un signe que s'afegeix a una lletra per a alterar la pronunciació d'una paraula, o per a distingir-la entre paraules similars". Intentaria ser el més precís possible per no caure en interpretaccions incorrectes de la necessitat. Alguns comentaris / qüestions per aclarir la necessitat:
|
Gràcies. Modifico el text perquè sigui més clar. El significat del terme "diacrític" depèn força del context. En ortografia catalana és el que indiques, però en codificació de text s'entén per diacrític qualsevol signe gràfic que s'afegeix a un caràcter base (habitualment A-Z) |
Jordi: el terme diacrític és absolutament precís (en anglès: diacritical mark). Del mateix lloc on has tret tu la definició (la Viquipèdia): |
D'acord, gràcies. No ho sabia. Jo sempre l'havia interpretat com un accent que ajuda a desambiguar la funció d'un paraula que s'escriu igual (bé vs be). El més important doncs es tenir la llista exacta de caràcters als quals volem incidir |
Ja hi ha funcions que fan això, la del mateix Whoosh que esmenta Joan, o altres en Python.
|
@jmontane Entenc que això ha de funcionar per l'autocomplete i la cerca, les dues funcions? Si és així, si us plau comentau en el primer comentari |
He pujat una versió amb la feina que hi ha a la branca: https://github.com/Softcatala/conjugador/commits/search_diatritics El primer problema que veig era el que feia referència abans. Per exemple, cerquem "plaçar" però ara surten les formes de placar en c i tot just el que has escrit "plaçar" no apareix a l'autocomplete malgrat existeix. El problema que veig a l'accent folding aquest és que llavors no es dóna prioritat a la forma que estàs buscant ja que s'equiparà amb altres que coincideix. Els canvis que està fent en @xavivars no solucionaran això ja que només es prioritiza l'infinitiu i el seu canvi no està pensat per adreçar aquest problema. |
Amb el que s'ha fet veig un petit problema. Quan l'usuari cerca "vénc" (o un cas semblant: vénen) dóna això:
Hauríem d'aplicar aquesta lògica:
(Tot això és filar molt prim, i segurament passa en molt pocs casos.) |
La meva proposta és:
Per implementar això caldrà tenir dos índexos (un amb diàtrics i altre sense) ja que això es fa en temps d'indexació. |
Jo, com a usuari, el que esperaria és que si busque sense accents, em torne coses amb accents i sense (perquè potser només sé com s'escriu). Si busque amb accents, només esperaria coincidències amb accent. |
D'acord. Ara ha producció tenim que en la cerca, si la cerca normal torna 0 resultats fa una sense diacritics. Veure: https://github.com/Softcatala/conjugador/tree/search_diatritics Encara no he tingut temps de fer que la coincidència s'inclogui al resultat de la cerca (últim punt de la proposta del Jaume) |
Jaume, caldria veure el comportament que té això en producció ara: https://web2015.softcatala.org/conjugador-de-verbs Perquè el cas de "venc" ja no es dóna ja que en la primera cerca exata ja el troba com a part de "vendre" i llavors ja no fa la cerca amb diácritics (ja que només la fa si la primera cerca no troba res). |
Jo ara veig bé el comportament de la cerca. Només falta, com ja havies dit, els casos de la ela geminada. |
Si, el tema de la ela geminada no el farem de moment. |
Ho tanco, si hi ha alguna cosa més re-obrim-ho |
La cerca requereix haver d'escriure els diacrítics correctament. Caldria ignorar els diacrítics (accents, dièresis, punts volats, trencs de la ce trencada).
Un tema relacionat però que segur requeriria tractament ad hoc seria reconèixer grafies de la ela geminada alternatives. Per exemple l'IEC reconeix L.L.
Els caràcters que caldria considerar són, almenys: àèéíòóúïüç· (i també en majúscula). Potser amb l'opció Accent Folding de Whoosh? Sembla que permetria tractar tots els caràcters base de l'alfabet llatí [a-z] i tots els possibles diacrítics. El punt volat potser sí que necessitaria un tractament més específic.
Per exemple:
The text was updated successfully, but these errors were encountered: