WO2015177588A1 - A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding - Google Patents
A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding Download PDFInfo
- Publication number
- WO2015177588A1 WO2015177588A1 PCT/IB2014/001824 IB2014001824W WO2015177588A1 WO 2015177588 A1 WO2015177588 A1 WO 2015177588A1 IB 2014001824 W IB2014001824 W IB 2014001824W WO 2015177588 A1 WO2015177588 A1 WO 2015177588A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- word
- character
- memory bank
- memory
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
Definitions
- the present invention relates to a method and process for inserting, storing and searching list of words in high speed memory banks using two computer hardware processing properties: indirect memory addressing and ASCII encoding.
- Searching is a very fundamental operation in computing, where a method is used to find an attribute within a large collection of attributes. For example, a number could be searched within a collection of numbers or a word can be searched within a collection of words in a database.
- Searching methods in general, needs to be fast as applications searching for an attribute are gated by the answer obtained back through searching. For example, if search is successful, the logic follows a course of actions compared to when search is unsuccessful.
- Binary search requires preprocessing of the data, typically sorting.
- Methods such as Binary search are very conducive when operated on the data that are complete and stable. They achieve Log(N) speed when data (of size N) is ordered.
- Log(N) speed when data (of size N) is ordered.
- many data-intensive applications are evolving and it is very difficult to draw a line and take a snapshot of data to operate on for searching purposes.
- a method and a process for the use of ASCII encoding and indirect memory access for inserting and searching is described.
- the minimum requirement is that one has access to at least a memory bank that is 256 bytes in size.
- Method of insertion is a memory write while the method of searching is a memory read.
- the first step is by starting to write all single character syllables into memory bank B in the order in which they occur. Then, the next step is, to read the ASCII code of the first character in memory bank B. Contiguous addresses of the memory bank A denotes all the ASCII codes in a specific order.
- write in memory bank A at the location set by ASCII code of the first character as value one denoting that it is the first character to occur. Again find the ASCII code of the second character in memory bank B and write in memory bank A at the memory location set by its ASCII code, the value two. Continue reading all the characters in memory bank B and writing their corresponding location in memory bank A in an address set by their ASCII code.
- the third step as a method and process for insertion, all two character syllables present in a word are inserted in memory bank B and A respectively.
- memory bank B and A For address writing operation, for the two character syllables, we require a number of memory block A, that may be equivalent to the number of characters in memory block B.
- reading of the first two character syllable is done, and then determination of the ASCII code of its first character is performed. This ASCII code determines the memory block number where the location of this two character syllable will be placed. Getting the ASCII value of the second character, this value gives the address within the selected memory block, here the address of the two character syllable is written in this memory block.
- searching is performed and searching is the reverse operation of insertion. For example, given an N character syllable, we first get the location of its first two character syllables using their ASCII code in memory block A to get their location in memory block B. Using these two location values to read the location of the two character syllable. The location of the two character syllable along with the location of third character to get the location of the three character syllable. Again using the location of the three character syllable along with the location of the fourth character, we get the location of the four character syllable. The search continues using this methodology of ASCII encoding and indirect memory addressing until we get the location of syllable of length N. If its value is non-zero then this syllable is found and its location is given, otherwise, value is zero, the syllable is not found.
- General search methods use an insertion technique that is ordered, where insertion takes time to place the words in the right order. The present techniques take time to build the data structure and applications involving larger number of transactions cannot afford such delay during the search process.
- General search methods search either a word or group of words; assume the data is ordered through sorting so that a quick search can be accomplished. For example, Binary search methods in an already ordered or sorted group of data are efficient. However, it takes time to order the data through sorting. Fast searching applications such as search engine cannot afford to keep ordered data up-to-date all the time.
- General search methods contain a single sorted data structure or array of words using memory banks, in case a collection of words need to be searched for a particular word.
- multiple numbers of arrays stored in efficient memory banks are used for the search process.
- One array through memory banks is used to store the words to be searched while multidimensional arrays are used to store the location of all the words, syllables and characters.
- Words are categorized as of length one, two or less than Maximally Distinguishable (MaxDist). MaxDist is the length of the longest matching portion of the searched word already present.
- FIG. 1 illustrates the high level architecture of a search operation, where a search method is used to search an attribute among a collection of attributes.
- FIG. 2 depicts generic search methods, where an input from an application is inserted into an unordered data structure first. The data structure is presorted before a generic search method operates on that data to find an attribute.
- FIG. 3 shows the proposed fast index based search method where the words are stored in a main array based on memory banks and as syllables and character locations.
- FIG. 4 shows the proposed methodology to fill the main array memory bank.
- FIG. 5 shows the procedure to find the maximum distinguishable length of the word before inserting into main array.
- FIG. 6 shows the method to fill the main array after finding the maximum distinguishable length.
- FIG. 7 shows the procedure to insert words of various sizes.
- FIG. 8 shows the procedure to insert single character syllable.
- FIG. 9 illustrates the procedure to insert syllables of length greater than one.
- FIG. 10 illustrates the extraction of syllables after the first syllable.
- FIG. 11 illustrates the procedure to extract the last syllable.
- FIG. 12 illustrates the data structure for storing various syllables and words.
- FIG. 13 illustrates using an example the insertion process of a single character syllable.
- FIG. 14 illustrates using an example the insertion of new words into main array memory bank.
- FIG. 15 illustrates using an example the insertion of new words that is not made of single character.
- FIG. 16 illustrates using an example the search process of a new word.
- FIG. 17 is a diagrammatic system view of a computer device view in which any of the embodiments disclosed herein may be performed, according to one embodiment.
- FIG. 18 shows an entire system for processing insertion and search method, according to one or more embodiments.
- the present disclosure relates to a method and process to perform insertion of a word or a group of words and search in a fast manner. More specifically a memory bank is used efficiently to record and assign ASCII values for each character for the word or group of letter or group of words. There is no sorting of the data during the method and process for insertion and search.
- the present invention relates to insertion and searching method and processes, where a word or set of words are inserted into large list of data and searched in a large list of data and.
- Example of such data intensive applications that the instant method and process for inserting and searching may be used are present in banking, hotel management, search engines, university registration and warehouse inventory etc.
- a typical search engine has 200 Million hits per day with over a billion search operations per day. To keep the data pre-sorted on a daily basis is practically impossible. A periodic snapshot of sorted data is possible but not up-to-date sorted data. Therefore methods such as Binary search are difficult and complex to operate on such applications.
- Applications with real-time data Applications such as search engines require real-time data manipulation. This means, data are continuously being searched and inserted, and there is no "free" time where the data can be taken off-line and sorted. Applications such as these require smart searching and insertion methodology where it can be done in a quick fashion. To do it fast, the arrays are stored as memory banks in memory hardware for faster access and transfers. The memory banks may reside in processors, computer hardware and cloud.
- Search requirements in applications Applications such as search engines normally require a word or set of words (sentence) to be searched in a big set of data collected over a period of time.
- Data intensive applications normally perform searching and insertion with requirements of speed.
- the application requires a word or set of words to be located in a set of massive data collection.
- Traditional mechanisms expect such speed to be achieved by keeping this massive data collection sorted, so that whenever there is a requirement to search, it becomes easy.
- the application is continuously updated and data is changing real-time, it is extremely difficult to stop the process to keep the data sorted. Therefore there is a need to find an insertion and searching method and process that is efficient in performing the functions fast.
- Insertion requirements in applications Applications such as search engines not only want to search the data, but also insert the word or a set of words that are being searched. The knowledge base is kept up-to-date by learning new words that are being searched.
- other applications such as banking require specific function to search for a word (name of a person) or set of words (address), and the insertion function is used for inserting a new word into the data specifically.
- Real-time applications require insertion function to insert quickly and into the data structure that can be used for searching as well.
- the methodology for insertion is a subset of searching. For inserting a new word, we search and insert in the right place so that future searches of that word can be done quickly.
- the proposed method uses unordered list array as a data structure to store words that are stored in memory banks for fast access and transfers.
- Data Sorting Generic sorting techniques use complex data structures such as trees to order the data. To accomplish that, one expects the complete set of data to be available apriori. Sorting techniques, such as quick sort are used to order the data, on which the searching is done. Though this method can be quick (as low as O (N log N) for a data set of N elements), the expectation is for the set of data to be available for a period of time when transactions are not occurring. In real-time applications, to find such a pause is very difficult due to unpredictable nature of transaction times. Therefore there is a necessity to find a fast searching method that operates on an unordered list of data rather than sorting as a pre-condition.
- Generic search techniques use sorting procedures on the data structure to order the data. Once the data is ordered, it becomes easy and fast to search. On a dataset of N elements, searching can be accomplished in O (log N) after sorting the data using at least O (N log N). The issue of having data ordered is that the transactions have to be paused to complete the sorting mechanism separately if the data needs to be stable. If the transactions continue which a copy of the data is sorted, then the searching on the sorted data is done using stale data. The proposed method does not require separate sorting and the construction of the data is done using unordered list. The fast searching, done without pre-sorting, is indexed based array search where the data is stored for fast access in memory banks. The procedure is used for insertion leading to dual use.
- Data Storage - Data Structure Data structure used for storing data is based on abstract data types in general. However, to use those data types, such as tree for pre-sorting needs a snapshot of the data which a real-time application cannot afford.
- the proposed method uses an unordered list as a data type, implemented using an array structure for convenience and speed.
- Data Storage - Index based Arrays Index based arrays used in the proposed method provides the flexibility to address a particular data in a single step, while keeping it logically continuous.
- the high usage of memory in arrays due to apriori declaration of the size is a challenge.
- memory as explained earlier is becoming more and more inexpensive and can be compromised to achieve speed and accuracy.
- Time Versus Space Complexity Generic search methods optimized both time and space while trying to work things out off-line where need be. However, in the past ten years, where realtime data intensive search applications are so response time sensitive that off-line computation, such as sorting, is not possible. Therefore optimizing the time and space of search and sort algorithms alone is not enough. Optimizing the algorithm speed and response is important. In our method, we introduce a fast searching mechanism that provides instant response without any off-line sorting requirement.
- FIG. 1 is a diagram illustrating the high level architecture of search operation.
- a search operation consists of a search method 102, an attribute that needs to be searched 104 and a predetermined collection of attributes 106 connected in a special way.
- FIG. 2 is a depiction of generic search methods, where an application 202 contributes to the set of words that are inserted as part of an unordered data structure to build the data base. This goes through another stage of sorting 206 to make it ready for searching.
- a generic search method 210 such as Binary search, operates on the sorted data 208 to find if the word or set of words are there or not. Therefore two stages of processing is involved, first to insert the word and second to sort the complete data structure to keep it up-to-date and enable fast searching on a sorted data.
- two stages take more computation time and to keep the sorted data up-to-date on an application that inputs real-time, such as search engines or stock market data is difficult or impossible.
- FIG. 3 is a diagram of the proposed fast indexed based search method. This is done by using memory banks for storing the data and operating on the data.
- the application input 202 inserts the words or list of words.
- Our proposed method provides both insertion and search functionality 304 by inserting new words into the unordered indexed based data structure arrays 306.
- Main array 306 consists of set of words to be searched. In insertion a new word is placed in Main array memory bank at location Z. The last character of this new word is placed in the One Character Syllable at location Y. The remaining syllable is placed in the Syllable Store at location X.
- the value Z is then placed in the multidimensional memory bank array FindWordLocation 308 at the location indexed by X and Y.
- FindWordLocation 308 At the location indexed by X and Y.
- the fast response of the method is achieved by using unordered data structure, where the data set is created as and when a new word is inserted, conducive for later searching. In addition the data is stored in high speed memory banks for fast access. Fast response is also achieved by using common functions for both searching and insertion.
- the unordered data is constructed with only three set of word arrays 306, namely main array memory bank for storing words, one character syllables to store single character occurrence and syllable store for storing syllables. These three arrays are manipulated to store all the words and quickly search using proposed method.
- FIG. 4 shows the proposed methodology to fill the main array memory bank 406 with words that are to be searched. Filling the array with complete words and searching in database increases the search time for long words. Therefore, we find the maximum distinguishable length of the word, namely the length of the subset of word that is distinguishable 404 so that words can be trimmed.
- FIG. 5 shows the procedure to find the maximum distinguishable length of the word before inserting into main array memory bank 406. The idea here is to find a length that every long word if trimmed to this size then it will be distinct. No other word would match this trimmed word.
- the output of the next procedure is an array of trimmed words that are all of length MaxDist and distinct. The steps of the procedure are as follows:
- FIG. 6 shows the method to fill the main array memory banks, after finding the maximum distinguishable length.
- the method reads the word to be searched 604 and uses the insertion procedure 606 to fill the main array memory bank until all words are inserted 608.
- FIG. 7 shows the insertion procedure for a new word 606. If a word is of length 1, namely single character words 702, the word is inserted into One Character Syllable data structure 708. If the word is of length greater than one, i.e., if the word is not a single character word 704, then the word is inserted into data structure for Multiple character syllable 710. If the word is greater than maximum distinguishable length, then it is inserted after parsing into prefix and postfix and trimming it to MaxDist size 706.
- Insert New Word 606 The new words to be inserted are checked if it is a single character word 702 or words that are longer 704. Search New Word follows the same procedure as Insert New Word, as the location for inserting the new word will be not empty if already present - leading to positive search.
- FIG. 8 depicts the flow chart of the procedure to insert a single character word 708, i.e., word of one character syllable.
- a single character word 708 i.e., word of one character syllable.
- the location flag is empty 804, then the location flag is incremented 810 and the data structures updated 812 to reflect the learning of new single character word followed by the update of Main array memory bank to reflect the insertion 814. If the location flag is not empty, then the word is located 806, followed by an update of main array memory bank 814.
- FIG. 9 shows the steps taken to insert words of length greater than one 710.
- the initial step is to read the first character of the word 902 and check if the first character exists in single character data structure 804. If it does not, then similar procedure as insertion of single character is followed 810 and 812. This is followed by extraction of remaining syllables 912 in case the word length is over two. If the word length is two, then the remaining syllable is also a single character, in which case it is extracted 914 as a separate procedure.
- FIG. 10 shows the procedure to extract remaining syllables 912.
- the first character of remaining syllables is read 1002 and this single character location flag is checked 804 and if empty the location is incremented 810 and data structures updated 812. If the first character location flag is not empty, then remaining syllable is constructed 1010 character by character until the last character is extracted 914.
- FIG. 11 shows the procedure to extract the last character 914. It follows similar steps as inserting single character 804, 810 and 812 if the character is not located. The word location is determined and if the word is found 1112, then the main array memory bank is updated 1114 and the word location 1116 is returned to the insert new word procedure stating that word is found. If the word is not found, then the new word is inserted and the word location is returned.
- FIG. 12 shows the different string data structure arrays that are used as part of the search and insertion procedures.
- the main array memory bank is constructed with new words 1202,
- OneChSylbl array contains words of single character 1204 and SylblStore consists of remaining syllables 1206.
- three integer arrays are used namely OneChSylblLoc to flag the location of the single character syllables, SylblAdd to provide the address of the syllable and FindwordLocation memory bank 308 to flag the location of the word in Main array memory bank.
- FIG. 13 shows an example of the insertion process of a single character.
- OneChSylbl is an array of unique single characters already learnt. For example, when four words are inserted, namely I, AM, A, MAN, OneChsylbl array would have the distinct I, A, M, N characters 1302. Similarly, the integer array OneChSylblLoc shows the number of times the character has occurred so far. The character is tracked as per its ASCII value 1304.
- FIG. 14 shows the example of inserting new words as part of the string array named Main Array 1402. It can be clearly seen that I, AM, A, MAN occupies the first four indices with the zeroth index showing the next available free index.
- Words of length larger than one is dissected as the first character and remaining syllables.
- the first character is handled as single character occurrence 812, while the remaining syllables are handled character by character 1002.
- the syllables are integrated and added to the data structure Syllable Store, while the location of the syllable is tracked in Syllable Location data structure 1010.
- FIG. 15 shows the example to insert a new word that is not a single character.
- the SylblStore is a string array memory bank that stores the syllables 1502. For example, to insert "MAN”, syllable "MA" is stored in SylblStore memory bank in [1, 2] position since it is the first encountered word with two characters.
- position [0, 2] is incremented to two showing the next available free space for inserting new two character syllable.
- the integer array SylblAdd 1504 flags the position of [3, 2] for SylblAdd(2, Position “M”, Postion “A"), since "M” occupies third position in OneChsylbl array and "A" occupies second position in OneChSylbl array. If instead of "MAN”, the word is "MANY”, then the Sylbl Store will have the position of "MA” and "N”.
- FIG. 16 illustrates the searching of new word. For example, if a word "MAN” is to be found using FindWordLocation(3, Location of "MA”, Location of "N”). Location of "MA” is one, determined in one step from sylblAdd(2,"M","A”). Location of "N” is four, from
- Find Word Location constitutes a collection of tables for words of different lengths.
- Final Word Location table 1602 shows the position of the three letter word that is searched, namely four, is in the Main Array memory bank at fourth location. If that entry is not four but zero, that means the searched word does not exist. At this point, the word could be inserted using the same procedure used for searching while updating Main Array memory bank.
- MAN is grouped into “MA” in Syllable Store data structure under two character syllable 1502 followed by the last character “N”.
- the location of "M” and “A” are tracked in Syllable Address table 1504.
- the word “MAN” is tracked in Find Word Location procedure which clearly shows the position of the full word in Main Array memory bank 1602. If we take “MANY” as an example then the location of syllables “MA” and “N” will be tracked in Syllable Address with last single character being “Y”. The word “MANY” will be found using the location of "MAN” and "Y” in Find Word Location table. [083] Fig.
- FIG. 17 is a systematic view of an integrated system for data management 1700 illustrating communication between user and the server through a network, according to one embodiment.
- a user or multiple users may connect to the server that hosts the multimedia tool in the system.
- the user hard ware such as a PDA, mobile device such as tablets etc., computer or a mobile phone or any wireless device, or an electronic book (e-book) may be connected with each other or work independently to allow the user to use the multimedia tool for education, learning, and/or interactively playing games.
- the network 1701 may be a LAN, WAN, mobile, telecommunications, internet, intranet, WiFi and/or ZigBee network, etc.
- the user/ individual 1705, 1704 and 1703, a database 1702 to store all the information and so on may be an individual, a parent, a scientist, an author, but not limited to these group of folks only.
- the user and individual are used interchangeably and mean the same.
- the user may be any person who accesses the data management system for various activities as discussed in different case scenarios in the supporting figures.
- the cloud server may also be used for storing data and processing.
- the data management tool may be accessed to search, create content, upload content, view content, use the content and save and/or delete the content.
- the server may be stand alone, cloud based or hosted services.
- FIG. 18 is a diagrammatic system view 1800 of a computer device view in which any of the embodiments disclosed herein may be performed, according to one embodiment.
- the computer system view 1800 illustrates a processor 1802, a main memory 1804, a static memory 1806, a bus 1812, a video display 1820, an alpha-numeric input device 1822, a cursor control device 1824, a drive unit 1826, a signal generation device 1828, a network interface device 1808, a machine readable medium 1830, instructions 1832, and a network 1701, according to one embodiment.
- the computer system view 1800 may indicate a personal computer and/or a data processing system (e.g., server) in which one or more operations disclosed herein are performed.
- the processor 1802 may be microprocessor, a state machine, an application specific integrated circuit, a field programmable gate array, etc.
- the main memory 1804 may be a dynamic random access memory and/or a primary memory of a computer system.
- the static memory 1806 may be a hard drive, a flash drive, and/or other memory information associated with the computer system.
- the bus 1812 may be an interconnection between various circuits and/or structures of the computer system.
- the video display 1820 may provide graphical representation of information on the data processing system.
- the alpha-numeric input device 1822 may be a keypad, keyboard and/or any other input device of text (e.g., a special device to aid the physically handicapped).
- the cursor control device 1824 may be a pointing device such as a mouse.
- the drive unit 1826 may be a hard drive, a storage system, and/or other longer term storage subsystem.
- the signal generation device 1828 may be a bios and/or a functional operating system of the data processing system.
- the network interface device 1808 may be a device that may perform interface functions such as code conversion, protocol conversion and/or buffering required for communication to and from a network 1801.
- the machine readable medium 1830 may provide instructions on which any of the methods disclosed herein may be performed.
- the instructions 1832 may provide source code and/or data code to the processor 1802 to enable any one/or more operations disclosed herein.
- the instant system, method and process enables the right information at the right time to be intelligently and securely updated, maintained, and recombined dynamically across databases and delivery channels.
- the constraints and rules may be implemented in compliance to any user/users organization. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The invention is valid for general applications that need insertion and searching of a single word or set of words.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2014394628A AU2014394628A1 (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ASCII encoding |
| KR1020167033202A KR20170005428A (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding |
| CA2949343A CA2949343A1 (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding |
| EP14892446.7A EP3014494A4 (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding |
| PCT/IB2014/001824 WO2015177588A1 (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2014/001824 WO2015177588A1 (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2015177588A1 true WO2015177588A1 (en) | 2015-11-26 |
Family
ID=54553477
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2014/001824 Ceased WO2015177588A1 (en) | 2014-05-17 | 2014-05-17 | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP3014494A4 (en) |
| KR (1) | KR20170005428A (en) |
| AU (1) | AU2014394628A1 (en) |
| CA (1) | CA2949343A1 (en) |
| WO (1) | WO2015177588A1 (en) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5210853A (en) * | 1988-11-18 | 1993-05-11 | Sharp Kabushiki Kaisha | Electronic device/dictionary with improved information storage: memory capacity ratio |
| US5758148A (en) * | 1989-03-10 | 1998-05-26 | Board Of Regents, The University Of Texas System | System and method for searching a data base using a content-searchable memory |
| US5931940A (en) * | 1997-01-23 | 1999-08-03 | Unisys Corporation | Testing and string instructions for data stored on memory byte boundaries in a word oriented machine |
| US7565362B2 (en) * | 2004-11-11 | 2009-07-21 | Microsoft Corporation | Application programming interface for text mining and search |
| CN102262669B (en) * | 2011-07-28 | 2013-03-13 | 西安空间无线电技术研究所 | Fast outputting method from Chinese Pinyin to Chinese character internal code |
| US8423533B2 (en) * | 2011-02-08 | 2013-04-16 | International Business Machines Corporation | Multiple rule bank access scheme for use in a pattern matching accelerator |
-
2014
- 2014-05-17 EP EP14892446.7A patent/EP3014494A4/en not_active Withdrawn
- 2014-05-17 WO PCT/IB2014/001824 patent/WO2015177588A1/en not_active Ceased
- 2014-05-17 AU AU2014394628A patent/AU2014394628A1/en not_active Abandoned
- 2014-05-17 CA CA2949343A patent/CA2949343A1/en not_active Abandoned
- 2014-05-17 KR KR1020167033202A patent/KR20170005428A/en not_active Withdrawn
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5210853A (en) * | 1988-11-18 | 1993-05-11 | Sharp Kabushiki Kaisha | Electronic device/dictionary with improved information storage: memory capacity ratio |
| US5758148A (en) * | 1989-03-10 | 1998-05-26 | Board Of Regents, The University Of Texas System | System and method for searching a data base using a content-searchable memory |
| US5931940A (en) * | 1997-01-23 | 1999-08-03 | Unisys Corporation | Testing and string instructions for data stored on memory byte boundaries in a word oriented machine |
| US7565362B2 (en) * | 2004-11-11 | 2009-07-21 | Microsoft Corporation | Application programming interface for text mining and search |
| US8423533B2 (en) * | 2011-02-08 | 2013-04-16 | International Business Machines Corporation | Multiple rule bank access scheme for use in a pattern matching accelerator |
| CN102262669B (en) * | 2011-07-28 | 2013-03-13 | 西安空间无线电技术研究所 | Fast outputting method from Chinese Pinyin to Chinese character internal code |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3014494A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2014394628A1 (en) | 2016-12-15 |
| EP3014494A1 (en) | 2016-05-04 |
| KR20170005428A (en) | 2017-01-13 |
| EP3014494A4 (en) | 2017-03-15 |
| CA2949343A1 (en) | 2015-11-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101465770B1 (en) | Word probability determination | |
| US6754650B2 (en) | System and method for regular expression matching using index | |
| EP3435256B1 (en) | Optimal sort key compression and index rebuilding | |
| US20030074183A1 (en) | Method and system for encoding and accessing linguistic frequency data | |
| US20070198566A1 (en) | Method and apparatus for efficient storage of hierarchical signal names | |
| JP7052145B2 (en) | Token matching in a large document corpus | |
| WO2008043582A1 (en) | Systems and methods for building an electronic dictionary of multi-word names and for performing fuzzy searches in said dictionary | |
| CN103294776A (en) | Smartphone address book fuzzy search method | |
| US10810258B1 (en) | Efficient graph tree based address autocomplete and autocorrection | |
| CN107329987A (en) | A kind of search system based on mongo databases | |
| Chen et al. | Template detection for large scale search engines | |
| US20030158725A1 (en) | Method and apparatus for identifying words with common stems | |
| US10949465B1 (en) | Efficient graph tree based address autocomplete and autocorrection | |
| CN109885641B (en) | Method and system for searching Chinese full text in database | |
| CN115129871B (en) | Text category determining method, apparatus, computer device and storage medium | |
| US9009200B1 (en) | Method of searching text based on two computer hardware processing properties: indirect memory addressing and ASCII encoding | |
| CN111339319B (en) | Enterprise name disambiguation method and device, electronic equipment and storage medium | |
| CN118114660A (en) | Text detection method, system and computer readable storage medium | |
| WO2015177588A1 (en) | A method of searching text based on two computer hardware processing properties: indirect memory addressing and ascii encoding | |
| CN105426490A (en) | Tree structure based indexing method | |
| CN108399152A (en) | Compression expression method, system, storage medium and the rule match device of digital search tree | |
| Belazzougui et al. | Compressed string dictionary search with edit distance one | |
| Piskorski et al. | Towards person name matching for inflective languages | |
| Boytsov | Super-linear indices for approximate dictionary searching | |
| CN117290523B (en) | Full text retrieval method and device based on dynamic index table |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14892446 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2014892446 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2949343 Country of ref document: CA |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 20167033202 Country of ref document: KR Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 2014394628 Country of ref document: AU Date of ref document: 20140517 Kind code of ref document: A |