MX2013004765A - Metodos para indexacion y busqueda basados en lenguaje local. - Google Patents
Metodos para indexacion y busqueda basados en lenguaje local.Info
- Publication number
- MX2013004765A MX2013004765A MX2013004765A MX2013004765A MX2013004765A MX 2013004765 A MX2013004765 A MX 2013004765A MX 2013004765 A MX2013004765 A MX 2013004765A MX 2013004765 A MX2013004765 A MX 2013004765A MX 2013004765 A MX2013004765 A MX 2013004765A
- Authority
- MX
- Mexico
- Prior art keywords
- state machine
- characters
- collation
- term
- search term
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3338—Query expansion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
En respuesta a una solicitud de búsqueda teniendo un término de búsqueda recibido de un cliente, un lenguaje local actual se determina. Una máquina de estado se construye con base en el lenguaje local actual, en donde la máquina de estado incluye uno o más nodos para representar la varianza del término de búsqueda que tiene significado idéntico del término de búsqueda. Cada nodo de la máquina de estado se atraviesa para identificar una o más listas de anuncios de un índice invertido correspondiente a cada nodo del estado de máquina. Uno o más identificadores de artículo obtenidos de una o más listas de anuncios se regresan al cliente, en donde los identificadores de artículo identifican uno o más archivos que contienen la varianza del término de búsqueda representada por la máquina de estado.
Description
MÉTODOS PARA INOEXACIÓN Y BÚSQUEDA BASADOS EN LENGUAJE LOCAL
CAMPO DE LA INVENCIÓN
Las modalidades de la invención generalmente se relacionan al campo de la indexación y búsqueda de datos y más particularmente a la indexación y búsqueda basada en lenguaje local.
ANTECEDENTES DE LA INVENCIÓN
Los sistemas de procesamiento de datos modernos tales como los sistemas de computadoras de propósito general, permiten a los usuarios de dichos sistemas crear una variedad de diferentes tipos de archivos de datos. Por ejemplo, un usuario típico de un sistema de procesamiento de datos puede crear archivos de texto con un programa de procesamiento de texto tal como Microsoft Word o puede crear un archivo de imágenes con un programa de procesamiento de imágenes tal como Photoshop de Adobe. Numerosos otros tipos de archivos son capaces de ser creados o modificados, editados, y de otra manera usados por uno o más usuarios para un sistema de procesamiento de datos típico. El gran número de diferentes tipos de archivos que pueden crearse o modificarse puede representar un reto a un usuario típico quién está buscando encontrar un archivo particular que se ha creado.
Los sistemas de procesamiento de datos modernos comúnmente incluyen un sistema de administración de archivos que permite a un usuario colocar los archivos en varios directorios o subdirectorios (por ejemplo, fólderes) y permitir a un usuario proporcionar al archivo de un nombre. Además, estos sistemas de administración de archivos comúnmente permiten a un usuario encontrar un archivo mediante la búsqueda no solamente de un contenido de un archivo, sino también mediante buscar el nombre del archivo, o la fecha de creación o la fecha de modificación o el tipo de archivo. Un ejemplo de dicho sistema de administración de archivos es el programa Finder que opera en las computadoras Macintosh de Apple Computer Inc. de Cupertino California. Otro ejemplo de un programa de sistema de administración de archivos es el programa Windows Explorer que opera en el sistema operativo Windows de Microsoft Corporation de Redmond,
Washington. Ambos el programa Finder y el programa Windows Explorer incluyen un comando de búsqueda que permite a un usuario buscar los archivos mediante varios criterios incluyendo el nombre del archivo o una fecha de creación o una fecha de modificación o el tipo de archivo. Esta capacidad de búsqueda busca a través de la información que es el mismo para cada archivo, a pesar del tipo de archivo. Además, por ejemplo, los datos de búsqueda para un archivo de Microsoft Word son los mismos como los datos de búsqueda para un archivo de Photoshop de Adobe y estos datos típicamente incluyen el nombre del archivo, el tipo de archivo, la fecha de creación, la fecha de la última modificación, el tamaño del archivo y ciertos otros parámetros que pueden mantenerse para el archivo por el sistema de administración de archivos.
Ciertos programas de aplicación actualmente existentes permiten a un usuario mantener los datos acerca de un archivo particular. Estos datos acerca de un archivo particular pueden considerarse metadatos porque son datos acerca de otros datos. Estos metadatos para un archivo particular pueden incluir información acerca del autor de un archivo, un resumen del documento, y varios otros tipos de información. Algunos sistemas de administración de archivos, tales como el programa Finder permiten a los usuarios encontrar un archivo mediante la búsqueda a través de los metadatos.
En un sistema típico, los varios contenidos, archivos, y metadatos se indexan para la recuperación posterior usando un programa tal como el programa Finder, lo cual es comúnmente referido como un índice invertido. Por ejemplo, un índice invertido puede contener una lista de referencias pára los documentos en los cuales una palabra particular aparece.
Algunos locales responden diferentemente a caracteres especiales. Por ejemplo, en Estados Unidos, el carácter "a" debe generar 'a', 'á', y 'á', y algunos otros caracteres, como ellos tienen significado similar o significado idéntico con base en sus caracteres base. En contraste, en un local sueco, estos caracteres pueden tener diferentes significados. La indexación y búsqueda convencional no toman en cuenta el lenguaje local específico.
SUMARIO DE LA INVENCIÓN
De acuerdo con un aspecto de la invención, en respuesta a una solicitud de búsqueda que tiene un término de búsqueda recibido de un cliente, un lenguaje local actual se determina. Una máquina de estado se construye con base en el lenguaje local actual, en donde la máquina de estado incluye uno o más nodos para representar la varianza del término de búsqueda que tiene significado idéntico del término de búsqueda. Cada nodo de la máquina de estado es atravesado para identificar una o más listas de anuncios de un índice invertido correspondiente a cada nodo de la máquina de estado. Uno o más identificadores del artículo obtenidos de una o más listas de anuncios se regresan al cliente, en donde un identificador de artículo puede identificar una o más entradas o ubicaciones de uno o más archivos que contienen la varianza del término de búsqueda representada por la máquina de estado.
De acuerdo con otro aspecto de la invención, en respuesta a una solicitud de búsqueda que tiene un artículo de búsqueda, una clave de colación se determina para cada parte del artículo de búsqueda. Una máquina de estado usando uno o más nodos se construye con base en el artículo de búsqueda, cada nodo representando uno de los caracteres en el término de búsqueda. Cada uno de los nodos en la máquina de estado se atraviesa para identificar una o más listas de anuncios de un índice invertido correspondiente a cada uno de la máquina de estado. Para cada nodo de la máquina de estado, uno o más caracteres equivalentes que tiene un significado idéntico se identifican con base en un lenguaje local actual. Las claves de colación de los caracteres equivalentes se comparan con una clave o claves del carácter o caracteres correspondientes en el término de búsqueda. Un carácter equivalente que tiene una clave de colación que no se iguala a la clave de colación del carácter correspondiente en el término de búsqueda se remueve, en donde los caracteres restantes se usan para identificar una o más listas de anuncios en el índice invertido.
De acuerdo con un aspecto adicional de la invención, un primer artículo en un sistema de procesamiento de datos se recibe, en donde el primer artículo incluye uno o más caracteres a indexarse. Un lenguaje local actual del sistema de procesamiento de datos se determina. Una
clave de colación para cada uno de los caracteres del primer término se determina bajo el lenguaje local actual. La clave de colación para cada uno de los caracteres del primer término se indexa en un índice invertido sin indexación con base en los caracteres actuales del primer artículo. La clave de colación representa una familia de uno o más caracteres equivalentes que tienen un significado idéntico bajo el lenguaje local actual, en donde el índice invertido se usa para búsquedas subsecuentes con base en las claves de colación.
Otras características de la presente invención serán aparentes a partir de los dibujos que la acompañan y de la descripción detallada que le sigue.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Las modalidades de la invención se ilustran por medio de ejemplo y no limitación en las figuras de los dibujos que la acompañan en las cuales como las referencias indican elementos similares.
La Figura 1 es un diagrama de bloque ilustrando un sistema de indexación y búsqueda de acuerdo con una modalidad de la invención.
Las Figuras 2-4 son diagrames de estado ilustrando ciertas máquinas de estado de acuerdo con algunas modalidades de la invención.
La Figura 5 es un diagrama de flujo ilustrando un método para indexación y búsqueda basado en el lenguaje local de acuerdo con una modalidad de la invención.
Las Figuras 6 y 7 son diagramas ilustrando una máquina de estado basada en las claves de colación de acuerdo con algunas modalidades de la invención.
Las Figuras 8 y 9 son diagramas ilustrando ciertas estructuras de datos de acuerdo con algunas modalidades de la invención.
La Figura 10 es un diagrama de flujo ¡lustrando un método para búsqueda de acuerdo con otra modalidad de la invención.
La Figura 11 es un diagrama de flujo ilustrando un método para indexación y búsqueda basado en claves de colación de acuerdo con una modalidad de la invención.
La Figura 12 es un diagrama de bloque de un sistema de procesamiento de datos, que puede usarse con una modalidad de la invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
Varias modalidades y aspectos de la invención se describirán con referencia a los detalles divulgados posteriormente y los dibujos que la acompañan ¡lustrarán las varias modalidades. La siguiente descripción y dibujos son ilustrativos de la invención y no se construyen como limitantes de la invención. Numerosos detalles específicos se describen para proporcionar un entendimiento total de varias modalidades de la presente invención. Sin embargo, en ciertos ejemplos, bien conocidos o detalles convencionales no se describen para proporcionar una divulgación concisa de las modalidades de la presente invención.
La referencia en la especificación a "una modalidad" o "una modalidad" significa que una característica particular, estructura o característica descrita junto con la modalidad pueden incluirse en al menos una modalidad de la invención. Las apariciones de la frase "en una modalidad" en varios lugares en la especificación no necesariamente se refieren todas a la misma modalidad.
De acuerdo con alguna modalidad, un índice (por ejemplo, índice invertido) puede construirse diferentemente con base en la clase de lenguajes locales usados. En una modalidad,
un índice se construye para cubrir la mayoría o todo de los caracteres (incluyendo los caracteres especiales) de la mayoría o todos los lenguajes locales durante la fase de indexación. Subsecuentemente, cuando una solicitud de búsqueda se recibe para buscar cualquier archivo que contiene un artículo de búsqueda de la solicitud de búsqueda, una máquina de estado se construye dinámicamente con base en el lenguaje local en el intervalo de tiempo, en donde la máquina de estado representa toda la varianza de los artículos de búsqueda bajo el lenguaje local que tienen significado similar o idéntico. Esto en efecto, cierne cualquier carácter que tenga un significado diferente bajo el lenguaje local en el intervalo de tiempo, pero de otra manera puede tener el mismo significado en otros lenguajes locales.
De acuerdo con una modalidad alterna para algunos ambientes de operación tal como dispositivos móviles, desde la localización tiende a permanecer estática (por ejemplo, el lenguaje local permanece siendo el mismo por un periodo de tiempo relativamente grande), el índice puede construirse en un lenguaje en una manera específica. Por ejemplo, si múltiples caracteres o términos de búsqueda son equivalentes, en lugar de la indexación de los caracteres o términos reales, una clave de colación correspondiente a los caracteres o términos se indexa. Como un resultado, el índice puede mantenerse en un tamaño relativamente pequeño, que a su vez resulta en búsqueda más rápida.
La Figura 1 es un diagrama de bloque ilustrando un sistema de indexación y búsqueda de acuerdo con una modalidad de la invención. Con referencia a la Figura 1 , el sistema 100 incluye pero no se limita a programa de indexación 101 , programa de búsqueda 102 y uno o más componentes de sistema tal como un núcleo (kernel) de un sistema operativo (OS), que se acopla operativamente al programa de indexación 102 y el programa de búsqueda 102, así como otros programas de software. El programa de búsqueda 102 incluye una variedad de programas tales como programa de búsqueda por contenido (también referido como encontrar por contenido) 107, programa de búsqueda por metadatos (también referido como encontrar por metadatos) 108. Por ejemplo, el programa de búsqueda por contenido 107 y/o programa de búsqueda por metadatos
108 puede implementarse como parte de un programa de navegación de cualquier clase de sistemas operativos, tal como el programa Finder™ de Mac OS™ disponible en Apple Inc. de Cupertino California.
En una modalidad, el programa de encontrar por contenido 107 y/o el programa de encontrar por metadatos 108 se usan para encontrar un término presente en los archivos de contenido 103 o metadatos 104. Por ejemplo, el programa 107/108 puede usarse para encontrar el texto y otra información de los archivos de procesamiento de texto o procesador de palabras creadas por programas de procesador de palabras tales como Microsoft Word, etc.
El programa de encontrar por contenido 107 y el programa de encontrar por metadatos 108 se acoplan operativamente a las bases de datos que incluyen uno o más índices 105. Los índices 105 representan al menos un subconjunto de los archivos de datos en un dispositivo de almacenaje, incluyendo los datos del archivo 103 y los metadatos 104 y pueden incluir todo de los archivos de datos en un dispositivo de almacenaje particular (o varios dispositivos de almacenaje), tal como el disco duro principal de un sistema de computadora. Uno o más índices 105 incluyen una representación de índices del contenido y/o metadatos de cada artículo almacenado en los archivos 103/104, tal como un documento de texto, música, video u otro tipo de archivo. El programa de encontrar por contenido 107 busca un término en ese contenido mediante buscar a través de uno o más archivos de índice 105 para determinar si el término particular, es decir, una palabra particular está presente en los artículos almacenados en los archivos de datos 103 que se han indexado. La funcionalidad del programa de encontrar por contenido está disponible a través del programa de encontrar por metadatos 108 que proporciona la ventaja al usuario de que el usuario puede buscar los índices 105 para el contenido 103 dentro de un artículo almacenado en los archivos de datos 103 así como cualquier metadato 108 que puede haberse generado para el artículo.
En una modalidad de la invención, el programa de indexación 101 se usa para crear y mantener uno más índices 105 que se acoplan operativamente a las aplicaciones del programa de encontrar por metadatos y por contenido 107/108. Entre otras funciones, el programa de indexación 101 recibe la información obtenida por el análisis de los archivos de contenido 103 y los metadatos 104 y usa esa información para generar una o más listas de anuncios 106 que identifican un artículo, (por ejemplo, archivo) conteniendo un artículo particular o teniendo metadatos conteniendo un artículo particular. Como tal, una lista de anuncios es un tipo de índice invertido que mapea un término, tal como un término de búsqueda para los artículos identificados en la lista.
En una modalidad, la información obtenida durante el análisis incluye un identificador único que identifica únicamente un artículo conteniendo el artículo particular, o teniendo metadatos conteniendo el término. Por ejemplo, los artículos tales como un archivo de procesamiento de texto o procesador de palabras tienen identificadores únicos, referidos como ITEMIDs. Los ITEMIDs se usan cuando se genera una lista de anuncios (por ejemplo, archivos de anuncios 106) para identificar otros tipos de archivos, tales como archivos de imágenes o archivos de música también pueden anunciarse a una o más listas de posteo 106, en cuyo caso, el ITEMID típicamente identifica los artículos que tienen metadatos conteniendo un término particular. En una modalidad, el programa de indexación 101 acumula las listas de anuncios 106 para uno o más términos en una o más configuraciones de actualización (no mostrado) y de vez en vez, activa las configuraciones de actualización en uno o más archivos de indexación 105.
En una modalidad, el programa de búsqueda 102 además incluye un constructor de máquina de estado de búsqueda 109 configurado para construir una máquina de estado en el tiempo de búsqueda con base en la información del lenguaje local 110, que puede haberse configurado como una parte de un sistema de operación o configuración de usuario/sistema. En una modalidad, cuando una solicitud de búsqueda se recibe para buscar cualquier archivo de contenido o metadatos que contiene un término de búsqueda, el constructor de la máquina de
estado 109 se configura para construir dinámicamente una máquina de estado para representar el término de búsqueda con base en un lenguaje local actual obtenido de la información local 110. La máquina de estado puede incluir uno o más nodos, cada uno representando un carácter o un carácter equivalente del término de búsqueda bajo el lenguaje local actual. Esto es, la máquina de estado representa todas las varianzas de los términos de búsqueda bajo el lenguaje local que tiene significado idéntico o similar. Esto es en efecto, las pantallas fuera de cualquier carácter teniendo un significado diferente bajo el lenguaje local en el punto en el tiempo, pero de otra manera tendría el mismo significado en otro lenguaje local. Por ejemplo, en inglés, los términos de "var", "vár", y "vár" son equivalentes y tienen significado idéntico. Cuando un 'termino de búsqueda incluye uno o más de los términos de "var", "vár", y "vár" y el lenguaje local es inglés, todos los archivos que contienen cualquiera de uno de los términos exactos y un término equivalente (por ejemplo, "var", "vár", y "vár") deben buscarse e identificarse. Sin embargo, en sueco la palabra "var" significa "fue" mientras la palabra "vár" significa "primavera". Una búsqueda de "var" no debe regresar al archivo que contiene el término de "vár", o vice versa,
En una modalidad, una máquina de estado se construye dinámicamente con base en el lenguaje local actual para representar los términos equivalentes válidos bajo el lenguaje local actual. Por ejemplo, como se muestra en la Figura 2, en inglés oca, cuando un término de búsqueda incluye uno de "var" y "vár", todos los archivos que contienen uno o más de "var", "vár", y "vár", ya sea como datos de contenido o metadatos, deben buscarse e identificarse. En este ejemplo, se asume que la búsqueda es un caso de búsqueda insensible. En respuesta al término de búsqueda (es decir "var" o "vár"), una máquina de estado se construye lo cual resulta en tres términos que tienen significado similar o idéntico bajo el inglés local. La máquina de estado como se muestra en la Figura 2 posteriormente pueden usarse para buscar cualquier lista de anuncios correspondientes a los términos representados por la máquina de estado, en este ejemplo, los términos de "var", "vár", y "vár".
Por otro lado, en danés local, la búsqueda de los términos de "var" y "vár" podrían producir diferentes resultados, como los términos de var" y "vár" tienen diferentes significados en danés. El término "vár" en danés puede producir una máquina de estado como se muestra en la Figura 3, mientras el término de "var" puede producir una máquina de estado como se muestra en la Figura 4, en donde en danés los términos "var" y "vár" son equivalentes. Además, en este ejemplo, la búsqueda para un término tal como "var" podría producir resultados significantemente diferentes dependiendo del lenguaje local en el intervalo de tiempo. Mediante usar una máquina de estado que se crea dinámicamente en el intervalo de tiempo de la búsqueda, el resultado de la búsqueda puede ajustarse más específicamente al lenguaje actual.
La Figura 5 es un diagrama de flujo ilustrando un método para indexación y búsqueda con base en el lenguaje local, de acuerdo con una modalidad de la invención. Por ejemplo, el método 500 puede realizarse por el sistema 100 de la Figura 1. Con referencia a la Figura 5, en el bloque 501 , un índice invertido se mantiene para los términos y caracteres de todo o la mayoría de los lenguajes locales. En respuesta a una solicitud de búsqueda que tiene un término de búsqueda recibido de un cliente, se determina un lenguaje local actual en el intervalo de tiempo. Con base en el lenguaje local actual, en el bloque 503, una máquina de estado se construye dinámicamente para representar toda la varianza de cada carácter (es decir, caracteres equivalentes) en el término de búsqueda. Esto es, la máquina de estado representa todas las combinaciones o mutaciones de todos los varios caracteres equivalentes de los términos de búsqueda bajo el lenguaje local actual. En el bloque 504, las listas de anuncios del índice se buscan con base en los términos representados por los nodos de la máquina de estado para identificar una lista de artículos (por ejemplo, archivos) que contienen uno o más términos representados por la máquina de estado, generando un resultado de búsqueda. En el bloque 505, el resultado se regresa al cliente.
Con referencia de nuevo a la Figura 1 , de acuerdo con algunas modalidades, los archivos de índices 105 y los archivos de la lista de anuncios 106 pueden almacenarse en una estructura de árbol tal como una estructura de datos de trie o una estructura aplanada. Un trie es una estructura de árbol en la cual cada nodo de los tres resuelve un carácter de la serie siendo igualada. Cada nodo interno consiste de una lista de caracteres. Asociado con cada carácter está un enlace saliente a otro nodo interno o a un nodo de hoja. Cada nodo de hoja sujeta los datos de los resultados asociados con el prefijo que conduce a ese nodo de hoja. Para buscar el trie, se inicia en el nodo de raíz y se atraviesa el árbol mediante seguir el enlace saliente en cada nodo correspondiente al siguiente carácter en la serie a igualarse. Cuando no puede encontrarse ningún enlace saliente de igualación, la igualación se ha encontrado.
Cada carácter puede representarse por su Unicódigo y/o la clave de colación correspondiente. Por ejemplo, dicho unicódigo y la clave de colación pueden definirse por los Componentes Internacionales para unicódigos (ICU) gobernando el cuerpo. Un carácter puede almacenarse en una forma compuesta representada por un simple unicódigo o una forma descompuesta que puede representarse por múltiples unicódigos. En una modalidad, un carácter se almacena como una codificación de carácter de longitud variable para unicódigos, tal como un carácter de Formato de Transformación de Unicódigos de 8 bits (UTF-8).
Las Figuras 6 y 7 son diagramas que ilustran una máquina de estado con base en las claves de colación de acuerdo con algunas modalidades de la invención. En este ejemplo, la máquina de estado como se muestra en la Figura 6 puede usarse para buscar los términos de "var" y "vár" en el inglés local o "var" en el danés local con las claves de colación de 0x57, 0x2D, 0x4F, respectivamente. Notar que una clave de colación se determina con base en cada parte de un término en un lenguaje local dado. Por ejemplo, en inglés, el término "vaar" tiene una clave de colación de (0x57 0x23 0x23 0x4F), en donde la parte de "v" se representa por la clave de "0x57"; la parte de "aa" se representa por la clave de "0x23 0x23"; y la parte de "r" se representa por la clave de "0x4F). Sin embargo, en danés, el término de "vaar" tiene una clave de colación de (0x57 0x60 0xC3 0x06 0x4F), en donde la parte de "v" se representa por la clave de "0x57"; la parte de "aa" se representa por la clave de "0x60 0xC3 0x06"; y la parte de "r" se representa por la clave de "0x4F). La máquina de estado como se muestra en la Figura 7 puede usarse para buscar el
término de "vár" en el danés local. Como se describió anteriormente, las máquinas de estado como se muestran en las Figuras 6 y 7 pueden construirse dinámicamente con base en el lenguaje local actual en respuesta a un término de búsqueda.
En este ejemplo se asume que una búsqueda de "var" se recibe en el inglés local y la máquina de estado como se muestra en la Figura 6 se crea dinámicamente, en donde los caracteres se almacenan en una arquitectura trie como se muestra en la Figura 8 o una forma aplanada como se muestra en la Figura 9. La lógica de procesamiento (es decir, el programa de búsqueda) inicia con el estado A1 de la Figura 6, en donde la información de igualación almacenada en una variable matchjnfo (igualación jnformación) está vacía. Con referencia a la Figura 6, en el estado A1 , la lógica de procesamiento para las series de igualación y hallazgos "v" y matchjnfo = {"v" siguiente = T2 }. La lógica de procesamiento entonces pasa al estado A2. En el estado A2, la lógica de procesamiento se observa para cualquier combinación de caracteres y no puede encontrarse en cualquiera en donde matchjnfo = { "v" siguiente = T2 }. Entonces pasa al estado A3. En el estado A3, la lógica de procesamiento se observa para las series y hallazgos de igualación "a", y matchjnfo = { "va" siguiente = T3}. Entonces pasa al estado A4.
En el estado A4, la lógica de procesamiento se observa para cualquiera de los caracteres de combinación siguientes y los hallazgos "á" y "á". Además matchjnfo = { "va" siguiente = T3, "vá" siguiente = T4, "vá" siguiente = T5 }. La lógica de procesamiento entonces valida las claves de colación asociadas { s:"va" k: 0x57 0x2D, s:"vá" k: 0x57 0x2D, s:"vá" k: 0x57 0x2D}. En este ejemplo, todas las claves de colación se igualan con las claves de colación de 0x57, 0x2D, 0x4F. En este punto matchjnfo = { "va" siguiente = T3, "vá" siguiente = T4, "vá" siguiente = T5 } y la lógica de procesamiento cambia al estado A5. En el estado A5, la lógica de procesamiento se observa para las series de igualación y hallazgos "r". El matchjnfo = {var" siguiente =0, "vár", siguiente =0,"vá" siguiente =0 }. Entonces pasa al estado A6. En el estado A6, la lógica de procesamiento se observa para cualquiera de las siguientes combinaciones de caracteres y no se encuentra ninguna. En este punto, la matchjnfo = { "var" siguiente =0, "vár", siguiente =0,"vá"
siguiente =0 }. La lógica de procesamiento entonces pasa al estado A7 y tiene la igualación final para "var'V'vár" y "vár". Las listas de anuncios de estos términos entonces pueden identificarse y recuperarse de cualquiera de una de las estructuras como se muestra en las Figuras 8-9.
En otro ejemplo de búsqueda en danés para "vár", con referencia a la Figura 7, la lógica de procesamiento inicia en el estado B1 con matchjnfo = { vacío}. En el estado B1 , la lógica de procesamiento se observa para igualar las series y los hallazgos "v", en donde matchjnfo = { "v" siguiente = T2 }. En el estado B2, la lógica de procesamiento para cualquiera de los siguientes caracteres de combinación y no puede encontrar ninguno, entonces matchjnfo = { "v" siguiente = T2 }. En el estado B3, la lógica de procesamiento se observa para las series de igualación y los hallazgos "á", en donde matchjnfo = { "vá" siguiente = T4}. En el estado B4, la lógica de procesamiento se observa para cualquiera de los siguientes caracteres de combinación y no puede encontrar ninguno, en donde matchjnfo = { "vá" siguiente = T4 }. En el estado B5, la lógica de procesamiento se observa para las series de igualación y los hallazgos "r", en donde matchjnfo = {"vár" siguiente =0}. En el estado B6, las lógicas de procesamiento se observan para cualquiera de los siguientes caracteres de combinación y no pueden encontrar ninguno, en donde matchjnfo = { "vár" siguiente =0 }. En el estado B7, tenemos la igualación final para "vár."
En la búsqueda en danés para "var", la lógica de procesamiento inicia en el estado A1 con matchjnfo { vacío }. En el estado A1 , la lógica de procesamiento se observa para las series y hallazgos "v", en donde matchjnfo = { "v" siguiente = T2 }. En el estado A2, la lógica del procesamiento se observa para cualquiera de los siguientes caracteres de combinación y no puede encontrar ninguno, en donde matchjnfo = { "v" siguiente = T2 }. En el estado A3, la lógica de procesamiento se observa para las series de igualación y los hallazgos "a", en donde matchjnfo = { "va" siguiente = T3}. En el estado A4, la lógica del procesamiento para cualquiera de los caracteres de combinación siguientes y los hallazgos algunos, en donde matchjnfo = { "va" siguiente = T3, "vá" siguiente = T4, "vá" siguiente = T5 }. Además, la lógica de procesamiento valida las claves de colación { s:"va" k: 0x57 0x2D, s:"vá" k: 0x57 0x60 0xC3 0x06, s:"vá" k: 0x57 0x2D}. En este ejemplo, solamente las claves de colación de "va" y'Vá" (e.g., 0x60, 0xC3, y 0x06) igualan a una con el término de búsqueda (por ejemplo, 0x57 y 0x2D), en donde la clave de colación de "vá" no sé iguala. Además, matchjnfo = { "va"siguiente = T3, "vá" siguiente = T5 }, en donde "vá" se remueve. En el estado A5, la lógica de procesamiento se observa para las series de igualación y hallazgos "r", en donde matchjnfo = { "var" siguiente =0, "vá" siguiente =0 }. En el estado A6, la lógica de procesamiento se observa para cualquier carácter de combinación siguiente y no se encuentra cualquiera, en donde matchjnfo = { "var" siguiente =0, siguiente =0, "vá" siguiente =0 }. En el estado A7, se tiene la igualación final para "var" y "vár."
La Figura 10 es un diagrama de flujo ilustrando un método para búsqueda de acuerdo con otra modalidad de la invención. Por ejemplo, el método 1000 puede realizarse por el sistema 100 de la Figura 1 . Con referencia a la Figura 10, en el bloque 1001 , en respuesta a un término de búsqueda, se determina una clave de colación para cada carácter del término de búsqueda. Dicha clave de colación puede determinarse de acuerdo con una o más reglas establecidas por el cuerpo de gobierno ICU. En el bloque 1002, una máquina de estado se construye dinámicamente, en donde la máquina de estado incluye uno o más modos, cada uno correspondiente a una de los caracteres del término de búsqueda. En el bloque 1003, para cada nodo en la máquina de estado, uno o más caracteres equivalentes se identifican con base en el lenguaje local actual. En el bloque 1004, las claves de colación de los caracteres equivalentes se igualan con las claves de colación asociadas con el término de búsqueda. En el bloque 1005, cualquier carácter cuya clave de colación no se iguala con lo correspondiente del término de búsqueda se remueve.
Para algunos ambientes de operación tal como un dispositivo móvil, el lenguaje local tiene a ser estable. Esto es, el lenguaje local del ambiente de operación no cambia frecuentemente. Más bien, el ancho de banda de procesamiento tal como memoria y/o almacenaje tiende a limitarse en dichos ambientes de operación. De acuerdo a algunas modalidades de la invención, en lugar de los caracteres reales de indexación de un término, las claves de colación de los caracteres del término para el lenguaje local real se indexan. Por ejemplo, un teléfono móvil típicamente tiene un juego pequeño de documentos que se están indexando. En una modalidad, las claves de colección se indexan basadas en el lenguaje local actual. Si el lenguaje local actual cambia, las claves de colación de los documentos bajo el nuevo lenguaje local se re-indexan.
Para inglés, los términos de "var", "vár", y "vár" todos tienen la misma clave de colación
(0x57 0x2D 0x4F) para un caso/búsqueda insensible diacrítica. En esta situación, se puede justo indexar la clave de colación en lugar del término original. Cuando se busca, la clave de colación se construye dinámicamente con base en el término de búsqueda. Esto tiene la ventaja de almacenar los pocos términos únicos, pero puede perder el término original en el proceso (es decir, el término original no puede regenerarse de la clave de colación porque una clave de colación simple puede representar caracteres múltiples). Sin embargo, el índice podría mantenerse en un tamaño relativamente pequeño.
La Figura 11 es un diagrama de flujo ¡lustrando un método para indexación y búsqueda basado en las claves de colación de acuerdo con una modalidad de la invención. Por ejemplo, el método 1100 puede realizarse por el sistema 100 de la Figura 1. Con referencia a la Figura 11 , en el bloque 1101 , en respuesta a un término que tiene uno o más caracteres a indexarse, el lenguaje local actual se determina. El lenguaje local puede obtenerse de una configuración de usuario y/o sistema de un ambiente operativo del sistema. En el bloque 1102, una clave de colación se genera para cada uno o todos los caracteres en el término basado en el lenguaje local actual. En el bloque 1103, las claves de colación representando el término se indexan en un índice invertido. Subsecuentemente, en el bloque 1104, en respuesta a un término de búsqueda, una clave de colación para cada uno de los caracteres en el término de búsqueda se genera con base en el lenguaje local actual. En el bloque 1105, el índice invertido se busca con base en las claves de colación representando el término de búsqueda para identificar uno o más archivos que contienen el término correspondiente a las claves de colación. Notar que las operaciones involucradas en los bloques 1101-1103 y los bloques 1104-1105 pueden realizarse independientemente, por ejemplo, a través de diferentes ondas.
La Figura 12 es un diagrama de bloque de un sistema de procesamiento de datos, que puede usarse con una modalidad de la invención. Por ejemplo, el sistema 1200 puede usarse como el sistema 100 de la Figura 1. Notar que mientras la Figura 12 ilustra varios componentes de un sistema de computadora, no se intenta representar ninguna arquitectura particular o manera de interconexión de los componentes, tales como los detalles que no son germanos para la presente invención. También se apreciará que las computadoras en res, las computadoras portátiles, los teléfonos celulares y otros sistemas de procesamiento de datos que tienen pocos componentes o quizás más componentes también puede usarse con la presente invención. El sistema de computadora de la Figura 12 puede por ejemplo, ser una computadora Apple Macintosh o Mac Book o una PC IBM compatible.
Como se muestra en la Figura 12, el sistema de computadora 1200, que es una forma de un sistema de procesamiento de datos, incluye un bus o interconexión 1202 que se acopla a uno o más microprocesadores 1203 y un ROM 1207, una RAM volátil 1205 y una memoria no volátil 1206. El microprocesador 1203 se acopla a la memoria caché 1204. El bus 1202 interconecta estos varios componentes juntos y también interconecta estos componentes 1203, 1207, 1205 y 1206 a un controlador de despliegue y un dispositivo de despliegue 1208, así como dispositivos de entrada/salida (l/O) 1210, que pueden ser ratones, teclados, módems, interfases de red, impresoras y otros dispositivos que son bien conocidos en la técnica.
Típicamente, los dispositivos de entrada/salida 1210 se acoplan al sistema a través de los controladores de entrada/salida 1209. La RAM volátil 1205 se implementa típicamente como RAM dinámica (DRAM) que requiere continuamente energía para refrescar o mantener los datos en la memoria. La memoria no volátil 1206 es típicamente un disco duro, un transmisor óptico magnético, un transmisor óptico o un DVD RAM u otro tipo de sistema de memoria que mantiene los datos incluso después de que la energía se remueve del sistema. Típicamente, la memoria no volátil también será una memoria de acceso aleatorio, aunque no se requiere.
Mientras la Figura 12 muestra que la memoria no volátil es un dispositivo local acoplado directamente al resto de los componentes en el sistema de procesamiento de datos, la presente invención puede usar una memoria no volátil que es remota del sistema, tal como un dispositivo de almacenaje en red, que se acopla al sistema de procesamiento de datos a través de una interfase de red tal como un módem o interfase Ethernet. El bus (enlace común) 1202 puede incluir uno o más buses conectados uno con el otro a través de varios puentes, controladores y/o adaptadores, como son bien conocidos en la técnica. En una modalidad, el controlador l/O 1209 incluye un adaptador USB (Bus Serial Universal) para controlar los periféricos USB. Alternativamente, el controlador l/O 1209 puede incluir un adaptador IEEE-1394, también conocido como adaptador FireWire para controlar los dispositivos FireWire.
Algunas porciones de las descripciones detalladas precedentes se han presentado en términos de algoritmos y representaciones simbólicas de operaciones en bits de datos dentro de una memoria de computadora. Estas descripciones algorítmicas y representaciones son los medios usados por aquellos expertos en la técnica de procesar datos para efectivamente transportar la sustancia de su trabajo a otros expertos en la técnica. Un algoritmo en este documento, generalmente se concibe como una secuencia consistente autónoma de operaciones conduciendo a un resultado deseado. Las operaciones son aquellas requiriendo manipulaciones físicas de cantidades físicas.
'
Debe tenerse en mente, sin embargo que todos estos términos y los similares se asocian con las cantidades físicas apropiadas y son meramente etiquetas convenientes aplicadas a estas cantidades. A menos que se establezca de otra manera como es aparente a partir de la divulgación anterior, se aprecia que toda la descripción, divulgación usando los términos tales como aquellos establecidos en las reivindicaciones, se refieren a la acción y los procesos de un sistema de computadora, o un dispositivo de computación electrónico similar que manipula y transforma los datos representados como cantidades físicas (electrónicas) dentro de los registros y memorias del sistema de computación en otros datos similarmente representados como cantidades físicas dentro de las memorias o registros del sistema de computación y otro dicho almacenaje de información, dispositivos de transmisión o de despliegue.
Las modalidades de la invención también se relacionan a un aparato para realizar las operaciones en el mismo. Dicho programa de computadora se establece en un medio legible por computadora no transitorio. Un medio legible por computadora incluye cualquier mecanismo para almacenar la información en una forma legible por una máquina (es decir, una computadora). Por ejemplo, un medio legible por máquina (es decir, legible por computadora) incluye un medio de almacenaje legible por máquina (es decir, una computadora) (es decir, memoria de solo lectura ("ROM"), memoria de acceso aleatorio ("RAM"), medios de almacenaje de discos magnéticos, media de almacenaje óptico, dispositivos de memoria flash).
Los procesos o métodos representados en las figuras precedentes pueden realizarse mediante lógicas de procesamiento que comprenden equipo (es decir, circuitos, lógica dedicada, etc.), programas (es decir, incrustados en un medio legible por computadora no transitorios) o una combinación de ambos. Aunque los procesos o métodos se describieron anteriormente en términos de algunas operaciones secuenciales, debe apreciarse que algunas de las operaciones descritas deben realizarse en un orden diferente. Además, algunas operaciones pueden realizarse en paralelo más que secuencialmente.
Las modalidades de la presente invención no se describen en referencia a cualquier lenguaje de programación particular. Debe apreciarse que una variedad de lenguajes de programación puede usarse para implementar las enseñanzas de las modalidades de la invención como se describe en este documento.
En la especificación precedente, las modalidades de la invención se han descrito con referencia a las modalidades ejemplarizadoras específicas de la misma. Será evidente que varias modificaciones pueden hacerse a la misma sin apartarse del espíritu y alcance más amplio de la invención como se establece en las siguientes reivindicaciones. La especificación y los dibujos son por consiguiente, con respecto a un sentido ilustrativo más que un sentido restrictivo.
Claims (20)
1. Un método implementado por computadora para ¡ndexación, comprendiendo: en respuesta a una solicitud de búsqueda que tiene un término de búsqueda recibido de un cliente, determinar un lenguaje local actual construir dinámicamente una máquina de estado teniendo una pluralidad de nodos para representar la varianza del término de búsqueda teniendo significado idéntico del término de búsqueda basado en el lenguaje local actual; atravesar cada nodo de la máquina de estado para identificar una o más listas de anuncios de un índice invertido correspondiente a cada nodo de la máquina de estado y regresar al cliente uno o más identificadores del artículo obtenidos de una o más listas de anuncios, los identificadores del artículo identificando uno o más archivos que contienen la varianza del término de búsqueda representada por la máquina de estado.
2. El método de conformidad con la reivindicación 1 , que además comprende mantener el índice invertido para una pluralidad de términos teniendo uno o más caracteres de una pluralidad de lenguajes locales, cada término correspondiente a una lista de anuncios que tiene los identificadores de artículos identificando uno o más archivos que contienen el artículo correspondiente.
3. El método de conformidad con la reivindicación 1 , en donde cada uno de los nodos en la máquina de estado representa un carácter teniendo un significado idéntico de un carácter correspondiente en el término de búsqueda bajo el lenguaje local determinado.
4. El método de conformidad con la reivindicación 1 , en donde cada nodo de la máquina d estado se asocia con una clave de colación presentando una colación de varianza de diferentes caracteres que tienen un significado idéntico en diferentes lenguajes locales.
5. El método de conformidad con la reivindicación 4, en donde la clave de colación se deriva del Unicódigo de Componente Universal (ICU) representando cada uno de los caracteres en diferentes lenguajes locales.
6. El método de conformidad con la reivindicación 4, en donde atravesar la máquina de estado comprende: igualar una primera clave de colación de cada nodo de la máquina de estado en contra de una segunda clave de colación de un carácter correspondiente del término de búsqueda y Remover desde la máquina de estado un carácter candidato que tiene una clave de colación que no iguala a la segunda clave de colación.
7. El método de conformidad con la reivindicación 1, en donde los términos del índice invertido se almacenan en una arquitectura trie y en donde cada nodo de la máquina de estado se atraviesa para localizar un nodo correspondiente en la arquitectura trie para identificar una lista de anuncios correspondiente.
8. Un medio de almacenaje legible por computadora que tiene instrucciones almacenadas en el mismo que cuando se ejecutan por una computadora, causan que la computadora realice un método de indexación, el método comprendiendo: en respuesta a una solicitud de búsqueda que tiene un término de búsqueda recibido desde un cliente, determinando un lenguaje local actual; construir dinámicamente una máquina de estado que tiene una pluralidad de nodos para representar la varianza del término de búsqueda que tiene significado idéntico del término de búsqueda basado en el lenguaje local actual; atravesar cada nodo de la máquina de estado para identificar una o más listas de anuncios de un índice invertido correspondiente a cada nodo de la máquina de estado y regresar al cliente uno o más identificadores de artículo de una o más listas de anuncios, los identificadores de artículo identificando uno o más archivos que contienen la varianza del término de búsqueda representada por la máquina de estado.
9. El medio de almacenaje legible por computadora de conformidad con la reivindicación 8, en donde el método además comprende mantener el índice invertido para una pluralidad de términos teniendo uno o más caracteres de una pluralidad de lenguajes locales, cada término correspondiente a una lista de anuncios que tienen los identificadores de artículo identificando uno o más archivos que contienen el término correspondiente.
10. El medio de almacenaje legible por computadora de conformidad con la reivindicación 8, en donde cada uno de los nodos en la máquina de estado representa un carácter que tiene un significado idéntico de un carácter correspondiente en el término de búsqueda bajo el lenguaje local determinado.
11. El medio de almacenaje legible por computadora de conformidad con la reivindicación 8, en donde cada nodo de la máquina de estado se asocia con una clave de colación presentando una colación de varianza de diferentes caracteres que tienen un significado idéntico en diferentes lenguajes locales.
12. El medio de almacenaje legible por computadora de conformidad con la reivindicación 1 1 , en donde la clave de colación se deriva del Unicódigo de Componente Universal (ICU) representando cada uno de los caracteres en diferentes lenguajes locales.
13. El medio de almacenaje legible por computadora de conformidad con la reivindicación 1 1 , en donde atravesar la máquina de estado comprende: igualar una primera clave de colación de cada nodo de la máquina de estado en contra de una segunda clave de colación de un carácter correspondiente del término de búsqueda y remover de la máquina de estado un carácter candidato teniendo una clave de colación que no se iguala con la segunda clave de colación.
14. El medio de almacenaje legible por computadora de conformidad con la reivindicación 8, en donde los términos del índice invertido se almacenan en una arquitectura trie y en donde cada nodo de la máquina de estado se atraviesa para localizar un nodo correspondiente en la arquitectura trie para identificar una lista de anuncios correspondiente.
15. Un método implemehtado por computadora para indexación, comprendiendo: en respuesta a una solicitud de búsqueda que tiene un término de búsqueda, determinar una clave de colación para cada carácter del término de búsqueda; construir dinámicamente una máquina de estado que. tiene una pluralidad de nodos basados en el término de búsqueda, cada nodo representando uno de los caracteres en el término de búsqueda y atravesar cada uno de los nodos en la máquina de estado para identificar una o más listas de anuncios de un índice invertido correspondiente a cada nodo de la máquina de estado incluyendo para cada nodo de la máquina de estado, identificar uno o más caracteres equivalentes que tienen un significado idéntico con base en un lenguaje local actual; comparar las claves de colación de los caracteres equivalentes con una clave de colación del carácter correspondiente en el término de búsqueda y remover un carácter equivalente que tiene una clave de colación que no iguala la clave de colación del carácter correspondiente en el término de búsqueda en donde los caracteres restantes se usan para identificar una o más listas de anuncios en el índice invertido.
16. El método de conformidad con la reivindicación 15, que además comprende preséntar a un cliente uno o más de los identificadores de artículo obtenidos de una o más listas de anuncios, los identificadores de artículo identificando uno o más archivos que contienen la varianza del término de búsqueda representada por la máquina de estado.
17. El método de conformidad con la reivindicación 15, en donde una clave de colación se deriva del Unicódigo de Componente Universal (ICU) representando un carácter en diferentes lenguajes locales.
18. Un método implementado por computadora para indexación, comprendiendo: recibir un primer término en un sistema de procesamiento de datos, el primer término teniendo uno o más caracteres para indexarse; determinar un lenguaje local del sistema de procesamiento de datos; determinar una clave de colación para cada uno de los caracteres del primer término bajo el lenguaje local actual; indexar la clave de colación para cada uno de los caracteres del primer término en un índice invertido sin indexarse con base en los caracteres actuales del primer término, la clave de colación representando una familia de uno o más caracteres equivalentes teniendo un significado idéntico bajo el lenguaje local actual, en donde el índice invertido se usa para búsquedas subsecuentes con base en las claves de colación.
19. El método de conformidad con la reivindicación 18, que además comprende: recibir en el sistema de procesamiento de datos una solicitud de búsqueda que tiene un segundo término de un cliente, el segundo término teniendo uno o más caracteres, generando una secuencia de una o más claves de colación representando cada uno de los caracteres basados en el lenguaje local actual; buscar el índice invertido con base en la secuencia de las claves de colación para identificar una o más listas de anuncios asociadas con las claves de colación y regresar al cliente una lista de uno o más identificadores de artículos obtenidos de las listas de anuncios, los identificadores de artículos identificando uno o más archivos que contiene caracteres correspondientes a las claves de colación.
20. El método de conformidad con la reivindicación 18, en donde una clave de colación se deriva del Unicódigo de Componente Universal (ICU) representando un carácter en diferentes lenguajes locales.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/913,517 US8577891B2 (en) | 2010-10-27 | 2010-10-27 | Methods for indexing and searching based on language locale |
PCT/US2011/056963 WO2012058077A2 (en) | 2010-10-27 | 2011-10-19 | Methods for indexing and searching based on language locale |
Publications (1)
Publication Number | Publication Date |
---|---|
MX2013004765A true MX2013004765A (es) | 2013-06-05 |
Family
ID=44872635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MX2013004765A MX2013004765A (es) | 2010-10-27 | 2011-10-19 | Metodos para indexacion y busqueda basados en lenguaje local. |
Country Status (9)
Country | Link |
---|---|
US (2) | US8577891B2 (es) |
EP (1) | EP2619689A2 (es) |
JP (1) | JP5744216B2 (es) |
KR (1) | KR101510973B1 (es) |
CN (1) | CN103282900B (es) |
AU (1) | AU2011320744A1 (es) |
BR (1) | BR112013010013B1 (es) |
MX (1) | MX2013004765A (es) |
WO (1) | WO2012058077A2 (es) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527518B2 (en) * | 2010-12-16 | 2013-09-03 | Sap Ag | Inverted indexes with multiple language support |
US20150169740A1 (en) * | 2011-11-21 | 2015-06-18 | Google Inc. | Similar image retrieval |
US10311062B2 (en) * | 2012-08-21 | 2019-06-04 | Microsoft Technology Licensing, Llc | Filtering structured data using inexact, culture-dependent terms |
US11003672B2 (en) * | 2016-10-28 | 2021-05-11 | Apple Inc. | Re-ranking search results using blended learning models |
KR102016601B1 (ko) * | 2016-11-29 | 2019-08-30 | 주식회사 닷 | 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램 |
WO2018101735A1 (ko) * | 2016-11-29 | 2018-06-07 | 주식회사 닷 | 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램 |
US10831801B2 (en) * | 2017-05-12 | 2020-11-10 | International Business Machines Corporation | Contextual-based high precision search for mail systems |
US20180349467A1 (en) | 2017-06-02 | 2018-12-06 | Apple Inc. | Systems and methods for grouping search results into dynamic categories based on query and result set |
US10621246B2 (en) * | 2017-06-02 | 2020-04-14 | Apple Inc. | Systems and methods for building an on-device temporal web index for user curated/preferred web content |
CN109635801A (zh) * | 2017-10-09 | 2019-04-16 | 株式会社理光 | 光学字符识别后处理的方法、装置及计算机可读存储介质 |
US10956669B2 (en) * | 2018-07-10 | 2021-03-23 | Beijing Didi Infinity Technology And Development Co., Ltd. | Expression recognition using character skipping |
US11544272B2 (en) * | 2020-04-09 | 2023-01-03 | Thoughtspot, Inc. | Phrase translation for a low-latency database analysis system |
CN117527832A (zh) * | 2024-01-03 | 2024-02-06 | 杭州趣链科技有限公司 | 一种区块链的交易排序方法、装置、电子设备和存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5913208A (en) * | 1996-07-09 | 1999-06-15 | International Business Machines Corporation | Identifying duplicate documents from search results without comparing document content |
US6026398A (en) | 1997-10-16 | 2000-02-15 | Imarket, Incorporated | System and methods for searching and matching databases |
US6047283A (en) * | 1998-02-26 | 2000-04-04 | Sap Aktiengesellschaft | Fast string searching and indexing using a search tree having a plurality of linked nodes |
JP2002092018A (ja) * | 2000-09-18 | 2002-03-29 | Nec Software Hokkaido Ltd | 片仮名平仮名も含めた検索システム |
NZ518744A (en) | 2002-05-03 | 2004-08-27 | Hyperbolex Ltd | Electronic document indexing using word use nodes, node objects and link objects |
JP4294386B2 (ja) * | 2003-06-13 | 2009-07-08 | 株式会社リコー | 異表記正規化処理装置、異表記正規化処理プログラムおよび記憶媒体 |
US7493305B2 (en) | 2004-04-09 | 2009-02-17 | Oracle International Corporation | Efficient queribility and manageability of an XML index with path subsetting |
US20050251519A1 (en) * | 2004-05-07 | 2005-11-10 | International Business Machines Corporation | Efficient language-dependent sorting of embedded numerics |
US7818282B2 (en) * | 2004-07-02 | 2010-10-19 | International Business Machines Corporation | System and method for the support of multilingual applications |
US7792833B2 (en) * | 2005-03-03 | 2010-09-07 | Microsoft Corporation | Ranking search results using language types |
US8195683B2 (en) | 2006-02-28 | 2012-06-05 | Ebay Inc. | Expansion of database search queries |
WO2007133625A2 (en) * | 2006-05-12 | 2007-11-22 | Eij Group Llc | Multi-lingual information retrieval |
US9754022B2 (en) * | 2007-10-30 | 2017-09-05 | At&T Intellectual Property I, L.P. | System and method for language sensitive contextual searching |
JP2010198350A (ja) * | 2009-02-25 | 2010-09-09 | Nippon Telegr & Teleph Corp <Ntt> | 検索装置及び検索方法 |
-
2010
- 2010-10-27 US US12/913,517 patent/US8577891B2/en active Active
-
2011
- 2011-10-19 WO PCT/US2011/056963 patent/WO2012058077A2/en active Application Filing
- 2011-10-19 JP JP2013536672A patent/JP5744216B2/ja active Active
- 2011-10-19 KR KR1020137010787A patent/KR101510973B1/ko active IP Right Grant
- 2011-10-19 AU AU2011320744A patent/AU2011320744A1/en not_active Abandoned
- 2011-10-19 MX MX2013004765A patent/MX2013004765A/es not_active Application Discontinuation
- 2011-10-19 BR BR112013010013-3A patent/BR112013010013B1/pt active IP Right Grant
- 2011-10-19 CN CN201180052442.5A patent/CN103282900B/zh active Active
- 2011-10-19 EP EP11776057.9A patent/EP2619689A2/en not_active Ceased
-
2012
- 2012-09-13 US US13/615,484 patent/US9020951B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP5744216B2 (ja) | 2015-07-08 |
US20130073559A1 (en) | 2013-03-21 |
US9020951B2 (en) | 2015-04-28 |
KR101510973B1 (ko) | 2015-04-10 |
WO2012058077A2 (en) | 2012-05-03 |
EP2619689A2 (en) | 2013-07-31 |
US20120109970A1 (en) | 2012-05-03 |
BR112013010013B1 (pt) | 2021-06-29 |
US8577891B2 (en) | 2013-11-05 |
BR112013010013A2 (pt) | 2016-08-02 |
CN103282900B (zh) | 2017-02-22 |
JP2013544393A (ja) | 2013-12-12 |
KR20130076876A (ko) | 2013-07-08 |
CN103282900A (zh) | 2013-09-04 |
AU2011320744A1 (en) | 2013-05-09 |
WO2012058077A3 (en) | 2012-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
MX2013004765A (es) | Metodos para indexacion y busqueda basados en lenguaje local. | |
US11593438B2 (en) | Generating theme-based folders by clustering digital images in a semantic space | |
US11853334B2 (en) | Systems and methods for generating and using aggregated search indices and non-aggregated value storage | |
US20130191414A1 (en) | Method and apparatus for performing a data search on multiple user devices | |
WO2017048584A1 (en) | Query transformation for natural language queries | |
US20060248067A1 (en) | Method and system for providing a shared search index in a peer to peer network | |
US10496686B2 (en) | Method and system for searching and identifying content items in response to a search query using a matched keyword whitelist | |
US9298757B1 (en) | Determining similarity of linguistic objects | |
US7917516B2 (en) | Updating an inverted index | |
US20120317125A1 (en) | Method and apparatus for identifier retrieval | |
US9734178B2 (en) | Searching entity-key associations using in-memory objects | |
CN110674087A (zh) | 文件查询方法、装置及计算机可读存储介质 | |
US8914377B2 (en) | Methods for prefix indexing | |
Ilic et al. | Inverted index search in data mining | |
Di Sarli et al. | GFS: A graph-based file system enhanced with semantic features | |
Carol et al. | Comparative Study of Conflict Identification and Resolution in Heterogeneous Datasets | |
US9600588B1 (en) | Stemming for searching | |
Shahi et al. | Additional Features | |
WO2016193797A1 (en) | Method of and system for generating a hashed complex vector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FA | Abandonment or withdrawal |