extracting a sentence

Reply

Join Date: Jan 2009
Posts: 7
Reputation: serhannn is an unknown quantity at this point 
Solved Threads: 0
serhannn serhannn is offline Offline
Newbie Poster

extracting a sentence

 
0
  #1
Jan 11th, 2009
Hello everybody,

I have a paragraph containing many sentences and I need to extract a certain sentence, which contains a certain. I have no problem finding the word with my code but my question is, how can I extract the whole sentence? The code should work, regardless of the position of the word in the sentence. Here I give an example:

A new crisis is emerging, a global food catastrophe that will reach further and be more crippling than anything the world has ever seen. The credit crunch and the reverberations of soaring oil prices around the world will pale in comparison to what is about to transpire, Donald Coxe, global portfolio strategist at BMO Financial Group said at the Empire Club's 14th annual investment outlook in Toronto on Thursday.

For instance, I search for the word catastrophe in this text and I find it. Now I need to extract the sentence:"A new crisis is emerging, a global food catastrophe that will reach further and be more crippling than anything the world has ever seen. "
I thought that I could use string.find until the characters ". " to get to the end of the sentence, but I also need to retrieve the part which comes before the word catastrophe. I would appreciate your ideas and help over this topic.

Thank you very much.
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 1,843
Reputation: ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of 
Solved Threads: 267
ddanbe's Avatar
ddanbe ddanbe is online now Online
Posting Virtuoso

Re: extracting a sentence

 
0
  #2
Jan 11th, 2009
Proceed in the same way. Find the previous '.', then move forward until the first capital.
Today is a gift, that's why it is called "The Present".
Make love, no war. Cave ab homine unius libri.
Danny
Reply With Quote Quick reply to this message  
Join Date: Jan 2009
Posts: 7
Reputation: serhannn is an unknown quantity at this point 
Solved Threads: 0
serhannn serhannn is offline Offline
Newbie Poster

Re: extracting a sentence

 
0
  #3
Jan 11th, 2009
Originally Posted by ddanbe View Post
Proceed in the same way. Find the previous '.', then move forward until the first capital.
But I can't decide whether it's beginning of a sentence looking at the capital. It can also be a name or another things.
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 1,843
Reputation: ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of ddanbe has much to be proud of 
Solved Threads: 267
ddanbe's Avatar
ddanbe ddanbe is online now Online
Posting Virtuoso

Re: extracting a sentence

 
0
  #4
Jan 11th, 2009
Come to think of it, it is not evident.
What would you do with a sentence like: This person holds a Ph.D., but this is not really a C++ problem any more.
Today is a gift, that's why it is called "The Present".
Make love, no war. Cave ab homine unius libri.
Danny
Reply With Quote Quick reply to this message  
Join Date: Jan 2009
Posts: 7
Reputation: serhannn is an unknown quantity at this point 
Solved Threads: 0
serhannn serhannn is offline Offline
Newbie Poster

Re: extracting a sentence

 
0
  #5
Jan 11th, 2009
In a loop, I used this code to start from the found word and take until the first encounter with a dot. But I think there's something wrong with it, because in output there are some errors. I search in text files, which are actually source codes of some webpages, so they contain many HTML tags. They also interrupt. Is there any better algorithm to avoid that?

  1. size_t pos1,pos2;
  2. pos1=line.find(keyword_vector[i]);
  3. pos2=line.find(".",pos1);
  4. string sentence = line.substr(pos1,pos2);

Thanks for help.
Last edited by serhannn; Jan 11th, 2009 at 11:56 am.
Reply With Quote Quick reply to this message  
Join Date: Apr 2008
Posts: 670
Reputation: Freaky_Chris is a jewel in the rough Freaky_Chris is a jewel in the rough Freaky_Chris is a jewel in the rough 
Solved Threads: 113
Freaky_Chris's Avatar
Freaky_Chris Freaky_Chris is offline Offline
Practically a Master Poster

Re: extracting a sentence

 
0
  #6
Jan 11th, 2009
Perhaps you should read the entire file in, strip out all html tags as you do so, that way you are left with just text. The go over and process what you have for sentences. But as ddanbe said, this isn't really a job for C++

The closest you will get to checking for the start and end of a sentence is [dot][space][capital] you will need to use that to check for both the beginning and end.

Chris

Chris
Knowledge is power -- But experience is everything
Reply With Quote Quick reply to this message  
Join Date: Dec 2004
Posts: 2,413
Reputation: Comatose is a jewel in the rough Comatose is a jewel in the rough Comatose is a jewel in the rough Comatose is a jewel in the rough 
Solved Threads: 211
Team Colleague
Comatose's Avatar
Comatose Comatose is offline Offline
Taboo Programmer

Re: extracting a sentence

 
0
  #7
Jan 11th, 2009
You still have to take into account that reading in a file has newlines. So, what if my sentence is nearing the end of the line, and I need to break it into the next line? If "word wrap" isn't used, but instead manual line breaks, sentences could be span on multiple lines :/
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC