This stuff's way beyond me, but to get a discussion started, here's how I'd approach it. . .
* Build up a dictionary of basic words (you can pull a list from project gutenberg to get you started). Classify these as verbs, nouns, adjectives, etc.
* Read up on the syntax of sentences (e.g.
diagram[
^]).
* Use this knowledge along with your dictionary to create a classification routine which can take a sentence and guess at a classification (verb, noun, etc) based on a word's position within the sentence.
* The nouns are the bits you're interested in (i.e. names, addresses, etc). Have another routine which you pass the sentence to if it contains an unknown noun and a keyword (named, called, he, she, lives at, etc). This can then add it to your list of likely candidates if the location of the keywords compared to the new noun is deemed as suggesting that the noun is a name/address.
* Break the data from your source down into sentences, pass them to the routine, and pull back the results.
This will still be a very rough approach, but with a bit of tweaking I reckon it'll be OK for starters.
Alternatively, check the web for videos and docs about the Wanderlust Natural Language project - I think they attempted something similar, but more advanced.