"Identifying phone numbers and addresses in text is often a challenge," wrote Lukas Zilka, a software engineer for Google's artificial intelligence software, in a blog post. "Not only is there a lot of variation in the way people write text, but the combinations in the text are often ambiguous about what information they represent (e.g.'Confirmation number: 857-555-3556'is not a phone number, even if it takes a form similar to a phone number)."
Zika explains that Smart Linkify is an improvement on the existing Android Linkify API, with two compact, low-latency feed-forward neural networks at the bottom, a machine learning algorithm consisting of a simple processing unit layer called a node, which borrows the intelligent text selection function of the previous mobile operation Xirong Android Oreo.
These two neural networks rely on the data generated by third models. The model extracts phone numbers, addresses, products, locations, and business names from the network, and randomly adds "text context" and phrases (such as "confirmation number" and "ID"). Google's AI team uses an algorithm for Latin (English, German, Polish, and Czech), and completely different algorithms for Japanese, Korean, Thai, Arabic, and Russian.
The whole process is like this: the text to be analyzed is split into words, and from these words all possible maximal length subsequences are generated. The first neural network in the system then assigns a value (between 0 and 1) to each subsequence to indicate its confidence in its identity, such as whether a given string of numbers is a password or a telephone number.
The subsequence with the lowest score is deleted from the list, and a second neural network intervenes to classify the subsequence by type - telephone number, address, or non-entity information.
"(Network) needs to know the context around the entity (except the text string of the entity itself). In machine learning, this is achieved by representing these parts as separate characteristics. "Actually, the input text is split into parts and fed to the neural network," Zika says.
To this end, words are converted into n-gram models (sometimes called N-metamodules, which are commonly used in large-vocabulary continuous speech recognition), a technique that "represents a set of all character subsequences of a certain length". A neural network identifies whether these words begin with a capital letter -- a salient feature of postal addresses.
In practice, assuming the sentence "John should call 1-800-9444-9494 on Tuesday," Smart Linkify first separates "John should dial" from "1-800-9444-9494", then classifies "John should dial" and "1-800-944-9494" as non-physical phone numbers and phone numbers, and finally in a Web browser. Or create a clickable link through this phone number in the application.
With the limitations of smartphone hardware, this is an additional challenge for AI teams. They solve this problem by quantizing (a compression technique that converts a continuous range of values into a finite range of discrete values) and sharing some numerical representations between two neural networks of the system.
In the near future, the team hopes to create machine learning models for dates and times -- especially to identify informal phrases in text such as "next Thursday" or "after three weeks".
"We believe this architecture can be extended to text annotation problems on other devices, and we look forward to seeing new use cases," Zika writes.