15.04.2018 Views

programming-for-dummies

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

648<br />

Problem Solving<br />

Although expert systems have proven to work within a limited domain, such<br />

as troubleshooting an aircraft or diagnosing patients <strong>for</strong> diseases, they<br />

haven’t proved popular in commercial applications.<br />

One problem is the difficulty in extracting a human expert’s knowledge and<br />

translating it into a set of rules. After you’ve translated an expert’s knowledge<br />

into a set of IF-THEN rules, a second problem is debugging these rules with<br />

the help of the human expert to make sure the expert system works just like<br />

the human expert. A third problem is that expert systems are clumsy to use.<br />

When someone wants help with a problem, he can tell a human expert what<br />

the problem may be and the human expert can start examining the problem<br />

directly. Computer expert systems don’t have that luxury, so using an expert<br />

system is like playing a game of Twenty Questions with the expert systems<br />

constantly asking questions, like “What is the white blood cell count?” After<br />

the human user responds, the expert system bombards the user with<br />

another question to get more in<strong>for</strong>mation. Using an expert system can be<br />

slow, clumsy, and frustrating, which is why they’re rarely used despite so<br />

many years of research.<br />

Besides the problem of storing a human expert’s knowledge into a series of<br />

IF-THEN rules, a final problem is updating the expert system’s knowledge,<br />

which requires interviewing the human expert all over again and then debugging<br />

the expert system once more to make sure the update in<strong>for</strong>mation is<br />

accurate. Given these problems, expert systems are more often too much<br />

trouble to use than they’re worth.<br />

Natural language processing<br />

In science fiction movies, artificially intelligent computers are always able to<br />

understand human language, which is known as natural language processing<br />

(NLP). The goal of NLP is to make computers even easier to use. By accepting<br />

spoken or written commands to the computer, NLP frees users from having to<br />

learn the arcane and cryptic syntax of ordinary computer commands.<br />

The first problem with understanding any human language is to understand<br />

the meaning of each specific word. This problem is rather trivial because it<br />

involves nothing more than identifying a word and then looking up its meaning<br />

in a dictionary data structure that links the word to its definition.<br />

If human language was logical, this would be all that NLP would have to do.<br />

Un<strong>for</strong>tunately, the meaning of words often depends on their context, which<br />

is difficult to program into a computer. For example, the phrases fat chance<br />

and slim chance actually mean the same thing although the adjectives fat and<br />

slim might seem like antonyms.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!