What is Artificial Intelligence?

A Blog Dedicated to Artificial Intelligence Technology & News.

Archive for October, 2009

Do Robots Fall In Love too?

Posted by William On October - 26 - 2009
Kobian robot showing happiness

Kobian robot showing happiness

Scientists all around the globe have been creating different kinds of robots which can perform simple tasks such as reaching or picking an object. Since 2000, the algorithms behind these movements have become more complex, to develop robots that can do more than simple walking and doing household chores.

Japanese researchers developed a humanoid that can present various emotions. It is claimed that it is the first in the world to show emotions with its whole body, from the face down to the limbs. It can express joy, fear, surprise, sadness, anger, and disgust, by opening and closing its eyes, moving its lips and eyebrows, and using its arms and legs. It shows happiness by opening its eyes and mouth wide and raising its arms, and sorrow by drooping its head and covering its eyes.

The robot is installed with 48 “actuators” which allow its face and body to move in a variety of ways. Do robots really fall in love? Is a question that you can ask the creator of the Japanese Kobian robot.

Click here to read the full story>>

5 Easy Ways to Use Artificial Intelligence in Your Java Programs

Posted by William On October - 24 - 2009
Artificial-Intelligence-JAVA

Most of the electronic stuffs we use everyday are products of artificial intelligence in collaboration with electrical, mechanical and computer engineering. These things include cell phones in general, digital radios, digital clocks, car stereo or t.v., microwave ovens and more you can add to the list.

Artificial Intelligence is also responsible in making your social network sites like twitter, easy to use, even on iPhones or Droids. It is also the core concept in web research engines like google and yahoo. Added to the list are data mining technologies, and text classification and filtering.

AI is just the theory or the concept. In order for this concept to work, we need a tool to implement a systematic program that will create its interface. And this is where Java comes in. Java is a one of the most portable and easiest to write programming language. It is in fact the widely used platform of most software applications today.

So, in this article, we will discuss the 5 easy ways to use artificial intelligence with Java.

Customer Recommender System

Most often, customers depend on recommendations to make decisions. Having a large volume of information in your site, not to mention the competitor's solutions, it is important to employ collaborative filtering in your recommender system.

Collaborative filtering strains out historical search items for a specific user and then correlates them to available information in your site, thus the process predicts the user's future interests and recommends the best given option. An example implementation for this is shown here.

Intelligent Search Applications

Intelligent Search Applications

Intelligent Search Applications

Intelligent search is a process of finding relevant information from an enormous set of non-relevant information. Finding the best results from a given search keyword is a task of a full-featured text search engine library such as Apache Lucenel

The Apache Lucene is the 800 pound gorilla in the realm of open source search. It's written in 100% JAVA however it's been ported to many other languages. Here is a short example of how to use the library.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
 
// Store the index in memory:
Directory directory = new RAMDirectory();
// To store an index on disk, use this instead:
//Directory directory = FSDirectory.open("/tmp/testindex");
IndexWriter iwriter = new IndexWriter(directory, analyzer, true,
    new IndexWriter.MaxFieldLength(25000));
Document doc = new Document();
String text = "This is the text to be indexed.";
doc.add(new Field("fieldname", text, Field.Store.YES,
    Field.Index.ANALYZED));
iwriter.addDocument(doc);
iwriter.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Now search the index:
// read-only=true
IndexSearcher isearcher = new IndexSearcher(directory, true);
// Parse a simple query that searches for "text":
QueryParser parser = new QueryParser("fieldname", analyzer);
Query query = parser.parse("text");
ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
assertEquals(1, hits.length);
// Iterate through the results:
for (int i = 0; i < hits.length; i++) {
  Document hitDoc = isearcher.doc(hits[i].doc);
  assertEquals("This is text to be indexed.", hitDoc.get("fieldname"));
}
isearcher.close();
directory.close();

Text Processing

Probably the most widely used computer application is text processing. Text processing is the manipulation of letters, words or phrases and even sentences and paragraphs. This process is performed by text processors such as your Microsoft Word, Lotus Notes etc. We do text editing of all sorts which may come handy depending on the type of document we are working on.

Text Document Classification

Text Document Classification

Text processing is enabled by text editor programs developed in JavaScript/ECMAScript,which is higly customizable. An example of a text editor program is JTextPro. A Java-based Text Processing tool that includes sentence boundary detection (using maximum entropy classifier), word tokenization (following Penn conventions), part-of-speech tagging (using CRFTagger), and phrase chunking (using CRFChunker).

A desirable feature of a word processing application is to change the case of a word, sentence or entire document. This sample application shows you, how to implement the different cases known from Microsoft Word in TX Text Control ActiveX. We are going to implement the following case changes:

* UPPER CASE

* lower case

* Title Case

* tOgGlE cAsE

* Sentence case.

Click here to see a snippet code for this implementation.

Text Document Classification

Document classification is the partitioning of unstructured sets of documents into groups that describe the contents of the documents. There are two main variants of document classification: text clustering and text categorization. The first is concerned with finding a static group structure in the set of documents, while the second (also known as text classification) can be seen as the task of structuring the repository of documents according to a group structure that is known in advance. For our discussion, let's focus on text classification.

Data can be classified according to any criteria, not only relative importance or frequency of use. For example, data can be broken down according to its topical content, file type, operating platform, average file size in megabytes or gigabytes etc. A well-constructed data classification system makes essential data easy to find.

Naive Bayesian Network is one best way to implement text classification. A naive Bayes classifier is a simple probabilistic classifier based on applying Bayes' theorem (from Bayesian statistics) with strong (naive) independence assumptions. In simple terms, a naive Bayes classifier assumes that the presence (or absence) of a particular feature of a class is unrelated to the presence (or absence) of any other feature. Here is a worked example of naive Bayesian classification to the document classification problem.

If you find this interesting, here is a sample code for the naive bayes classifier using Lucene.

Data Mining

Data mining "is a process for finding patterns and relationships in the data". This process is then used to classify users text or document into an information relevant to profiling practices, such as marketing, surveillance, fraud detection and scientific discovery.

Data mining commonly involves four classes of task, classification, clustering, regression and association rule learning. Please refer to "Text Classification" section for Classification and clustering. Regression attempts to find a function which models the data with the least error. A common method is to use Genetic Programming. Finally, association rule learning searches for relationships between variables. For example a supermarket might gather data of what each customer buys. Using association rule learning, the supermarket can work out what products are frequently bought together, which is useful for marketing purposes. This is sometimes referred to as "market basket analysis".

Refer to this link for in-depth discussion on this topic.

Computers Help Deaf Children Learn New Sign Language

Posted by William On October - 23 - 2009
Electronic Learning Environment (ELo) teaches deaf children learn new sign language

Electronic Learning Environment (ELo) teaches deaf children learn new sign language

The are about 28 million deaf and hard-hearing americans. Most of them use the natural hand signals to communicate. However, new technologies are on the rise to help these deaf individuals learn new ways to communicate. One technology that is getting more popularity is the use of computers integrated with intelligent systems to convert sign language into written text or images or even speech.

Researchers at TU Delft developed an intelligent application integrated in the computer which can recognize sign language in real time and can therefore be used to teach children who are deaf and hard of hearing new signs more quickly.

Using a camera that is mounted on the computer, children communicate through the normal hand signals, then the computer recognizes and interprets this information. The Electronic Learning Environment (ELo) application displays a picture for the deaf to identify the correct hand signal. In a study conducted for ages three to six, the deaf respondents showed a remarkable increase in sign language vocabulary compared to a control group.

Click here to read full story >>

CYCLOPS: A Rover for the Blind with Artificial Retina Implant

Posted by William On October - 21 - 2009
CYCLOPS - a mobile robotic platform, or rover designed to emulate what the blind can see

CYCLOPS - a mobile robotic platform, or rover designed to emulate what the blind can see

The blind can see! Thanks to the researchers at California Institute of Technology (Caltech) who have created a remote-controlled robot that is able to simulate the "visual" experience of a blind person who has been implanted with a visual prosthesis, such as an artificial retina.

This artificial retina or retinal prosthesis captures the image from the environment, it is then processed and passed along the implanted silicon chip's electrode array. The chip directly stimulates the eye's functional retinal ganglion cells, which carry the image information to the vision centers in the brain.

The mobile robotic platform or rover, a.k.a. Cyclops, is the first such device to emulate what the blind can see with an implant, says Wolfgang Fink, a visiting professor in physics at Caltech. Cyclops is equipped with a gimballed camera, four-rubberized grooved wheels and a computing platform which contains the algorithms to process the captured images. Though for now it is operated locally by a joystick, it is hoped that this approach may one day give blind persons the freedom of independent mobility.

Click here to read the full "CYCLOPS: A Rover for the Blind with Artificial Retina Implant" article.

World’s Smallest Computers made of DNA

Posted by William On October - 19 - 2009
DNA Computers

DNA Computers

From Mainframes and Super-computers that NASA and the military used to perform on large volume of data to hand-held gadgets like your palmtop, now come the latest in nanocomputers- super small computers made of DNA, also known as Biomolecular computers! So small that a trillion fit in a drop of water!

It was developed by a team of three from Weizmann Institute’s Biological Chemistry and Computer Science and Applied Mathematics Departments. The first version was developed in 2001 to do simple computations of 0s and 1s.

A newer version of the device, created in 2004, detected cancer in a test tube and released a molecule to destroy it. A sort of ‘doctor in a cell’ locating disease and preventing its spread – biomolecular computers could possibly be injected into the human cells and conceived to perform millions of calculations in parallel. Now, team in a paper published online August 3 in Nature Nanotechnology, have devised an advanced program for biomolecular computers that enables them to ‘think’ logically.

Click here for the full World's Smallest Computers made of DNA story

About Me

I am a computer programmer that loves technology, gadgets, making & learning new stuff. I love to read & basically to figure crap out.

Twitter

    Photos

    BrainNuronFormulaBulbBulbsBeachComputerBrainCollaborative-filtering-and-AIBinaryOrangeBinaryBlueBrainNetworkBinaryBlueBrainBinaryFunnel