Alexis Alulema - The first time someone hears about Natural Language Processing (NLP), they often don’t consider it to be overly complicated. After some additional consideration, though, they’ll realize how much the AI community has worked on the topic. The technology is even appearing in headlines like this one, as featured on sciencealert.com: Google’s AI has Learned to Become ‘Highly Aggressive’ in Stressful Situations.
As the above article suggests, this technology could become dangerous in the wrong hands or if managed incorrectly. However, I believe that if we get a better understanding of the nuts-and-bolts of NLP, we will conclude that there is nothing ‘magic’ under the hood. Rather, there is a growing, rigorous body of scientific work on creating better algorithms to process data and generate impressive solutions.
Neural Networks have started to become ubiquitous ever since Deep Learning experienced considerable growth with big data, cloud computing, and the appearance of Deep Learning frameworks like TensorFlow or PyTorch. These advancements are visible in areas like Computer Vision (CV), where predictions are incredibly precise and reach 95-98% accuracy. This precision is at the core of impressive advancements in face detection, artificial face generation, self-driving cars, and many other implementations.
Natural Language Processing
In comparison, NLP currently reaches accuracy rates of around 80%. At first glance, it may appear that NLP is not as good as CV. However, I don’t believe this is a fair evaluation, as language is ambiguous and context-bound. For example, a native speaker of a language can often use and understand regional slang and idiomatic expressions comfortably. In comparison, a non-native speaker may have trouble understanding these expressions and might express similar ideas in a different way. These and other factors create a massive task for prediction algorithms, which must attempt to understand idiomatic expressions and much more due to the complexity of language. The best-rated algorithms like GPT-2 require more than 150 GB of data to train the algorithm; for context, 150 GB of training data means days of training neural networks algorithms on super-computers.
I implore you to dive deeper into this topic by reviewing my recently published paper, Deep Learning Methods in Natural Language Processing. In the paper, I attempt to classify the most relevant NLP Deep Learning methods to understand how to use them and identify which situations are best suited for specific NLP methods.
Who would benefit from this content
This paper is a state-of-the-art document that will serve as a starting point for researchers or developers who want to become familiar with the broad spectrum of NLP techniques and how to optimally apply them in different scenarios.
Alexis Alulema Senior Software Architect and Machine Learning Engineer
Microsoft is a tech giant and one of the most influential companies in the market. While competitors like Apple or Google may seem more popular, Microsoft continues to have a strong presence. It is the third-largest tech company in the world, just a couple of steps below Apple and a step over Google's parent company Alphabet. While Microsoft has been around since 1975, there are still some things most people don't know about the influential company. Follow along for more details.
It was First Micro-Soft
Before the founders registered its brand name, they used Micro-Soft (a combination of microcomputer and software) in their company communications. Fortunately, they decided to drop the hyphen during registration and settled on an admittedly cooler brand name. While the name has remained unchanged, the logo has undergone several transformations. Microsoft’s first logo had a stylized ‘O’ called a ‘blibbet’, which was also the name of a burger served in the company’s cafeteria.
Microsoft Made a Lot of People Rich
Microsoft founder Bill Gates was the youngest billionaire of his time and spent a lot of time sitting at the top of the richest people list. But Microsoft’s stellar success didn’t just make Gates rich. Thousands of millionaires can trace their success back to this technological juggernaut. People who bought this company's stock in the 1980s and retained it until the 2000s made a remarkable profit as well. Its stock price has increased by approximately 71,283% over the past three decades.
Microsoft Saved Apple from Bankruptcy
Microsoft and Apple are some of the fiercest rivals in the industry. They have been competing against one another since their very inception. However, when Apple landed in financial trouble back in 1997, its rival stepped up to save it. Microsoft invested around $150 million to get Apple back on its feet. Not surprisingly, many people were not thrilled by this news, but if that support hadn't come in, Apple may no longer exist.
A Long List of Code Names
Tech companies are notoriously secretive when their products are under development; Microsoft is no exception to this rule. The company always assigns code names to its projects, which keeps competitors from knowing much about it. The code names are also placeholders because developers often come up with a product name after it is fully realized Some of the more famous names include Chicago (Windows 95), Whistler (Windows XP), Yukon (SQL Server 2005), Longhorn (Windows Vista), and Milan (Surface). The list of codenames is extensive, probably containing dozens of code names.
Microsoft is Serious About Art
The company has one of the most significant corporate art collections in the world, with more than 5,000 pieces from contemporary artists. Its collection includes works from relatively unknown artists as well as industry heavyweights like Takashi Murakami, Chuck Close, and Cindy Sherman. The art is scattered around Microsoft's 150 campuses and includes paintings, sculptures, photographs, multimedia works, etc.
Microsoft Entered the Smartphone Game First
Apple launched its first smartphone in 2007, but Microsoft had been in the industry since 2000. Unfortunately, they didn't find much success and their software performance on smaller hand-held devices wasn't stellar. Apple's technologically sophisticated product revolutionized the industry.
The Company Has Pet Rabbits
A few years ago, someone abandoned a few rabbits on the Microsoft campus grounds. This small group of rabbits bred at a rapid pace and grew in size; before long, the campus was swamped with these adorable but fast-breeding pests. To this day, they still have a thriving population. These are just a few of the many unknown facts about Microsoft. There are several fascinating stories associated with this company that you can explore in your spare time.
Artificial Intelligence (AI) is no longer a futuristic concept; it is a current reality. People use it every day to find information, automate processes, run complex calculations, and do much more. Because AI has such a significant influence on everyone's life, it is a good idea to keep an eye on its progress. We’re expecting many exciting developments in the world of AI in the months and years ahead. Here’s a brief overview of AI and what can you expect from 2020 onward:
Where Can We Find AI Today?
AI is more prevalent than many people realize, so much so that even people with little to no interaction with smart technology use it. Some of the most common uses of artificial intelligence include:
Google Maps AI-powered predictions recommend the fastest routes for any desired destination while also offering other route alternatives and live traffic data.
Ride sharing apps actively calculate pricing for different routes based on factors like distance, demand, traffic, etc.
Commercial airlines have been very early adopters of AI. This technology has powered airline autopilot systems for decades now. Modern day pilots fly a plane for only seven minutes on average, on a flight of any duration. The rest is handled by sophisticated autopilot systems.
Google uses AI technology to categorize emails automatically. All messages are sorted into spam, primary, social, or promotional folders without any user input. Google's AI is extremely precise; it filters 99.9% of all spam emails.
Many banks use AI and machine learning technology that let customers deposit checks through their mobile phone. AI recognizes handwriting, converts it to text, authenticates information before approving a deposit.
Smart assistants like Siri, Alexa, Google Assistant, Cortana, etc., are powered by AI and Machine Learning.
Online shopping platforms like Amazon use AI in search and to offer tailored product recommendations.
AI is also used in traffic control systems, communication, human resource management, credit management, and much more.
What Can We Expect from AI in the Future?
While people have long anticipated the development of AI, there have still been surprises along the way. Most assumed we'd have AI robots or machines, but this technology has taken a more indirect route. Based on current developments, experts believe we can expect the innovations mentioned below in the not so distant future:
1. Blockchain, IoT, and AI Coming Together
Blockchain, IoT, and AI are also disruptive technologies that have changed several industries. IoT can interact directly with hardware while collecting data for AI, and Artificial intelligence can analyze data before making decisions. Blockchain can ensure the system is secure, scalable, and protected from fraud.
2. Increased Penetration in Creative Industries
So far, AI hasn’t gone far into the creative industries. AI technology has only truly effected writing generic content for news media websites. However, that may change soon as AI starts delving into production, scriptwriting, story development, and even acting. CG technology has developed significantly in recent years. Movies use advanced graphics, de-aging technologies, and even AI for some imagery.
3. Workplace Automation
Many companies have already adopted automation for their regular tasks, but we will see increased penetration of technology in the future. According to Gartner, workplace automation will eliminate around 1.8 million jobs while creating about 2.3 million new jobs. As a result, this change may lead to people working on more engaging tasks for higher compensation.
4. Influence of Biased Data
AI and ML systems rely on data to provide solutions. If the historical data provided is biased, it can influence a system’s decisions. Unfortunately, using AI for hiring, credit scoring, or other such functions may negatively impact historically disadvantaged target demographics like women, POC, or people of different races. We’ll see increased penetration of AI and ML in fields like digital marketing, customer service, personal shopping services, etc. This technology is still in its early development stages. Who knows how far it will go? As an information technology company with many years of experience, we’ve helped hundreds of clients leverage technology to become more efficient and increase profits. Interested in learning more? Let’s connect. Send us an email or give us a call, so we can get the conversation started.
Number8's very own Derick Arzu was recently published on Medium. Read the article on automated QA processes below.
Text boxes, check boxes, radio buttons, and other elements of forms are fairly simple to deal with when it comes to developing UI functional tests for a web application. But what happens when you want to write a test that verifies that the UI for a web calendar is working?
You are probably thinking that it can be easily achieved with a couple of clicks and validations, which is not only true but also the approach that led to the idea of a handler.
Before you discover how to make your automated QA team very happy, here are some reasons why writing a simple function or just a segment of code that deals with ONE specific calendar is not as scalable. Imagine you are a QA Developer at a company who is developing the websites for airlines A and B and your team is requested to create the automated test suites. Sounds quite easy, you will use the same code in both projects, nothing will need to be changed; until someone shows you the designs of the two web calendars each airline uses in their website.
Beginning with the obvious differences, airline A uses two windows while airline B uses only one; that surely represents a significant change in the code of that first approach. Another difference you might not have noticed is that airline B has a dropdown to change the year of the calendar, so that would mean a slight change in the method used to get the text of the displayed year. Those are two visual differences that will affect the way your bot interacts with the calendar and the DOM will surely surprise you with more.
Now that you are interested, the coding begins!
This handler was implemented in Node.js and uses WebdriverIO as the test framework that interacts with the browser.
You will find out that the framework has two functions ($ and $$) to fetch web elements. However, a hierarchy of classes will be created to manipulate elements, later on you will learn this is so that the handler can easily be able to cover many web calendar designs.
The main class is Element. Here is where, the method to obtain the fetch function is implemented, it has two parameters:
selectorObject (required) which refers to an object with two properties; the first named selector , is a string that specifies the selector that will be used to fetch the element. The second is index, which is an integer that must be assigned to the object if the fetch result wants to be treated as a single element and not as an array of elements.
additionalProperties (optional) is an object with any property that wants to be added to the fetch result. The subclasses of the hierarchy use this to manage how some data is obtained from the web elements, you will learn this later on.
On top of delivering a project on time and within budget, developers must test for quality assurance upon completion to ensure stakeholders' expectations have been met. However, testing for quality after a product is built, usually results in far too little, too late. The agile model of software development encourages practicing quality assurance throughout every phase of the project. The agile way also prioritizes quality by making it the responsibility of every team member, not just the QA testers. As a result, the QA team coordinates efforts with the development team at each iteration, providing continuous testing. Implementing a feedback loop is a fundamental step in the quality assurance process. In order to guarantee that the product meets all of the requirements (feature functionality, design, reliability, usability and efficiency), it can be helpful to enlist the perspectives of those with varying backgrounds. This can include those proficient in testing, business and or development. Quality assurance testing can be both manual and automated. While both approaches are proficient at mitigating bugs, automated software testing is often more beneficial in that it is quicker and more effective at checking for code correctness. It's important to remember that the goal of Q & A testing is to find faults within the software so that an error-free application can be delivered to the client.
The following are integral software testing methods when best practicing quality assurance:
Test Driven Development (TDD)
TDD works by building a project's code around the QA tests. The programming team first designs and builds tests for functional code, and then creates code that will pass them. This development method helps everyone gain an understanding of the code's purpose before development; guaranteeing the initial functionality of the code and effectively building in quality.
Behavior Driven Development (BDD)
Similar to TDD, in that the test is written before the code, BDD tests the behavior of an application under specific conditions. This is done with the end user in mind. As development progresses, BDD often proves to be more reliable than TDD. BDD is also written in English instead of code, allowing for a more streamlined feedback loop.
Acceptance tests are simple pass or fail tests that check whether or not a feature behaves as it should. These are often automated to meet customer and business requirements.
Once one feature is functional, regression tests ensure it's stability throughout the software's other modifications. As more features are built, these automated tests check that the others aren't being negatively affected as a result.
Exploratory tests are usually manual, in that a human operates the software looking for unknown unknowns. These tests are meant to identify new situations that the development or QA teams haven't thought of. Once a product thoroughly meet's it's intended purpose and performs well under pressure, the QA testing is complete. At Number8, we believe in developing software that is user-friendly, reliable and completely functional. As a result, we are always recruiting talented QA professionals for quality assurance jobs on our team. To learn more about how we can help you complete and successfully launch your software project, contact us at 502-890-7665.
Hackathons are known to be breeding grounds for innovation. Often put on by an organization or university, these collaborative computer programming events are a great way to empower young entrepreneurs and thinkers alike. What is a Hackathon? A hackathon takes place over a set period of time, usually a weekend. During this time, teams set out to develop a solution to a problem in the form of a prototype that they will then pitch to whoever is hosting the hackathon. While primarily coders participate in these hacking marathons, people from all backgrounds including designers and marketers are encouraged to be involved during the software development process. Often many successful applications arise as a result! Here are 6 recent hackathon innovations & startups:
E-Farm is a service that was developed at Be-Bound. It is online produce market that allows consumers to purchase directly from farmers. Shoppers can source food from multiple farms and get to know the story behind both the farmer and their farm before their order is delivered to their home.
StartTalking is an app that connects users with counselors, coaches and doctors. Originating out of Kansas City's Hacking the Gigabit City event, users can send messages, video conference or participate in group sessions with their providers from anywhere anytime. The app is secure, affordable, and guarantees privacy.
PowerWells came out of a Techstars Startup Weekend. The service provides light and mobile phone charging from electronic waste and commercial solar panels to those in remote communities that don't have access to electricity.
Piece of Mind
Piece of Mind is a wearable device for patients with Alzheimer or Dementia. Created during an Angelhack, the app allows caregivers to monitor a patient's movements in real time and prevents loved ones from getting lost.
EchoLoco is an app that was developed during the Urban-X Hackathon. It provides audio maps for the visually impaired; helping them to safely navigate cities with the aid of real time cues.
CropSafe is an online platform that was created during an Angelhack in Dublin. It works to predict impending diseases and crop contamination by surveying plots of land via satellite imagery and machine learning. The service even offers solutions to affected landowners. Our dedicated team of software developers at Number9 are located in Louisville, Kentucky. Together, with our nearshore office in Costa Rica, we have worked to launch countless software projects successfully. Contact us today by calling 502-890-7665 to learn more about what we can do to help you complete your project.
WiFi has become essential to our professional and personal lives. It has changed the way we communicate and altered the way many of our devices work (thanks to the Internet of Things). While it's now nearly effortless for us to install, connect to and use, how did it come to be?
While WiFi wasn't accessible to consumers until 1997, it has a long history dating back to the 1940's. At it's core, WiFi uses wireless transmitters and radio signals to exchange information and connect to the internet. In the 1940's, Hollywood starlet Hedy Lamarr and composer George Antheil developed the radio frequency hopping technology that would become the foundation for the wireless communication we all enjoy today.
The History of Radio Frequency Hopping
According to a recent documentary, ‘Bombshell: The Hedy Lamarr Story,’ the popular actress Hedy Lamarr often ran experiments in her trailer between takes. Upon meeting Antheil, who famously synchronized pianos to hop from one note to another, the pair came up with a plan that incorporated radio signals. At the time of their work together, World War 2 was in full swing and the U.S. Navy needed a way to protect their underwater missiles form Nazis detection.
Together, Lamarr and Antheil joined the war effort by inventing the concept of radio frequency hopping. Their invention used perforated rolls of paper, much like the ones in pianos, to change frequencies from one point to another via the holes in the roll. This discovery helped guide radio-controlled missiles underwater without risking enemy exposure in that both the radio transmitter and the receiver could simultaneously change from frequency to frequency.
Modern Wireless Communication Methods
Fast forward to 1985, when the Federal Communications Commission (FCC) allowed several bands of wireless spectrum to be used without a government licence, and communication via radio frequency energy became revolutionized. In order to operate on these bands, devices were required to steer around interference from other equipment. They did so using the frequency hopping technology developed by Lamarr and Antheil.
While the duo were granted US Patent No. 2,292,387 in 1942, they signed it over to the Navy during the war. It wasn't until 1997 that they were recognized for their frequency hopping technology by the Electronic Frontier Foundation. It is no doubt that WiFi's many applications, including gps and bluetooth wouldn't be possible without Lamarr's and Antheil's invention. As the technological wonder continues to evolve and become faster and more reliable, we can take more than our fair share of inspiration from it's unlikely source..
Launching a newly developed software is as challenging as it is rewarding. Developing software from the ground up is no easy feat. It takes a lot of planning, time management, and knowledge of the ins and outs of information technology. When the launch of a software development project goes off without a hitch, it’s an IT miracle. It’s known that with software development, as with most IT projects, there can be some obstacles to overcome. More often than not, things go wrong within the coding or through a development process that must be fixed. Sometimes developers even have to go back to square one and start the entire project over. However, that is not always the case. Developers prepared to overcome obstacles are often successful in doing so. The key is knowing how to overcome common software development obstacles. This way you can ensure that the launch of your software goes smoothly. You may be asking yourself if every software development project is different, what are common software development obstacles? And that’s what we’re here to help you with today. Follow along to learn how to overcome 7 common software development obstacles before starting your next project.
7 Common Software Development Obstacles You Can Overcome
1. Poor Time Management Sets Unrealistic Expectations
Mismanaged timelines and missed launch dates are common obstacles that people overcome during a software development project. Whether it’s due to unforeseen roadblocks or issues that were expected to come up, there’s not much worse for a project than an extended delay. One of the best ways to avoid missed deadlines is to brainstorm with your team before starting the project. What could go wrong? Which pieces are expected to break? Where do you foresee there being delays? Being prepared for the inevitable bumps in the road is the best way to get over them smoothly and without too much delay. When a problem does come up that threatens the timely delivery of a project, stay calm, get the team together, and work as a group to find the best way forward.
2. Issues with Integration
Compatibility can be an issue with any project. When developing new software from the ground up, how do you ensure it pairs with all the tools the client already uses? One of the best ways to go about integration is through the use of application programming interfaces (APIs). Another option is to partner with the other tech brands that the client is prone to use. Find ways to work together with already utilized tools and teams of developers experienced with said tools.
3. Breakdowns in Communication
No software development program was launched alone. Depending on the size of the software development project, the team working on it can be as small as 5 people or as large as 20. When a communication breakdown occurs, it can have disastrous effects that could put the entire project in jeopardy. One of the best ways to avoid a communication breakdown is by hiring an effective project manager. Someone who can divide tasks among the team then ensure each of them is done and any changes which may affect the entire development outcome are communicated effectively is imperative to a successful project.
4. Overloading the Software with Features
While some features are necessary, others can be downright frivolous and simply load a software down. There is such a thing as too much and, when it comes to software, the line between just enough and too much is very thin. One of the best ways to circumvent overloading your software is to focus on features that truly embellish the core goal of the program. Less is always more in software and features that help the software rise above other programs are useful, but the goal of the software is to solve a problem, not create more, so keep features slim.
5. Not Understanding Exactly What the Software is For
One of the best ways to succeed in software development is to have a clear vision of what success looks like. Being able to completely understand how your software should work if it is working well will make it much easier to get to that finished point. Determine the “why” of the software before beginning the development process. Once you start, do not waiver from that why without good reason.
6. Not Realizing the Importance of Quality Assurance
Customer satisfaction is dependent on extensive quality assurance. Sending a software development project out into the world without assuring it is working as well as it possibly can is IT suicide. In order to achieve a high-performance product, the quality of the coding needs to be reviewed and tested continuously throughout development. Consider hiring a tester from a third-party source or create your own quality assurance checklist, in-house, and employ it repetitively.
7. Not Having a Target Audience Defined
While you, and your team, may think that your new software project is the best thing since sliced bread, not everyone will. Defining a target audience can help to avoid wasting time and money once the project is launched. Outline the demographics of the ideal user of your software. Then build a marketing plan that will appeal to that demographic. There are third-party companies available to complete market research, including focus groups, which can help identify the perfect consumer and what rings true with them in regards to marketing.
There are a lot of dos and don’ts to consider when developing new software. These are some of the software development obstacles our team has learned to avoid.
The more dos you can accomplish and don’ts you can avoid, the more likely your project will launch smoothly. All in all, the more planning you can put into your project prior to starting, the better. The tips above will help you to avoid a variety of issues, but there are always unforeseen circumstances. If you are in the middle of a software development project and have hit a roadblock, Number8 can help. Our dedicated team of software developers located in Louisville, Kentucky and at our nearshore office in Costa Rica has worked together to launch countless software projects successfully. Contact us today by calling 502-890-7665 to learn more about what we can do to help you wrap up your project.
GET STARTED TODAY
We’d Love To Schedule A Time To Talk.
Provide your information to talk with a number8 Relationship Manager about your development needs today and feel what it’s like to be listened to before being sold a solution.
number8’s onshore office is located in Louisville, Kentucky where our Account and Relationship Managers work hard to provide all of our clients with exceptional customer service. We also have consultant offices located in Escazú, Costa Rica and San Pedro Sula, Honduras that give us a strong local presence allowing for top-level recruitment, technical training and low employee turnover.