summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Baltescu <pauldb89@gmail.com>2013-03-08 16:00:47 +0000
committerPaul Baltescu <pauldb89@gmail.com>2013-03-08 16:00:47 +0000
commitb77cdc3bdec50cd77dff1e1ddc71db43e2ef8e0f (patch)
tree4346ff0e784a858aee65c2abf2b8a161596142fd
parente4bbb2cfdcb735b69203886d1c63104343c1bdc2 (diff)
Fixed stdout output order.
-rw-r--r--extractor/run_extractor.cc27
1 files changed, 15 insertions, 12 deletions
diff --git a/extractor/run_extractor.cc b/extractor/run_extractor.cc
index eb5600fe..e18336af 100644
--- a/extractor/run_extractor.cc
+++ b/extractor/run_extractor.cc
@@ -35,6 +35,11 @@ using namespace std;
using namespace extractor;
using namespace features;
+fs::path GetGrammarFilePath(const fs::path& grammar_path, int file_number) {
+ string file_name = "grammar." + to_string(file_number);
+ return grammar_path / file_name;
+}
+
int main(int argc, char** argv) {
int num_threads_default = 1;
#pragma omp parallel
@@ -184,34 +189,32 @@ int main(int argc, char** argv) {
}
string sentence;
- vector<string> sentences;
+ vector<string> sentences, suffixes;
while (getline(cin, sentence)) {
sentences.push_back(sentence);
}
#pragma omp parallel for schedule(dynamic) \
- num_threads(vm["threads"].as<int>()) ordered
+ num_threads(vm["threads"].as<int>())
for (size_t i = 0; i < sentences.size(); ++i) {
- string delimiter = "|||";
- string suffix = "";
+ string delimiter = "|||", suffix;
int position = sentences[i].find(delimiter);
if (position != sentences[i].npos) {
suffix = sentences[i].substr(position);
sentences[i] = sentences[i].substr(0, position);
}
+ suffixes.push_back(suffix);
Grammar grammar = extractor.GetGrammar(sentences[i]);
- string file_name = "grammar." + to_string(i);
- fs::path grammar_file = grammar_path / file_name;
- ofstream output(grammar_file.c_str());
+ ofstream output(GetGrammarFilePath(grammar_path, i).c_str());
output << grammar;
+ }
- #pragma omp critical (stdout_write)
- {
- cout << "<seg grammar=\"" << grammar_file << "\" id=\"" << i << "\"> "
- << sentences[i] << " </seg> " << suffix << endl;
- }
+ for (size_t i = 0; i < sentences.size(); ++i) {
+ cout << "<seg grammar=\"" << GetGrammarFilePath(grammar_path, i) << "\" id=\""
+ << i << "\"> " << sentences[i] << " </seg> " << suffixes[i] << endl;
}
+
Clock::time_point extraction_stop_time = Clock::now();
cerr << "Overall extraction step took "
<< GetDuration(extraction_start_time, extraction_stop_time)