MCPcopy Create free account
hub / github.com/BYVoid/OpenCC / Extract

Function Extract

src/tools/PhraseExtract.cpp:28–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26using opencc::UTF8StringSlice;
27
28void Extract(const std::vector<std::string>& inputFiles,
29 const std::string& outputFile) {
30 std::ostringstream buffer;
31 for (const auto& inputFile : inputFiles) {
32 std::ifstream ifs(inputFile);
33 const std::string contents((std::istreambuf_iterator<char>(ifs)),
34 (std::istreambuf_iterator<char>()));
35 buffer << contents;
36 }
37 const std::string& text = buffer.str();
38 PhraseExtract extractor;
39 extractor.SetWordMaxLength(2);
40 extractor.SetPrefixSetLength(1);
41 extractor.SetSuffixSetLength(1);
42 extractor.Extract(text);
43 std::ofstream ofs(outputFile);
44 for (const auto& word : extractor.Words()) {
45 const PhraseExtract::Signals& signals = extractor.Signal(word);
46 const double entropy = signals.prefixEntropy + signals.suffixEntropy;
47 const double logProbablity = extractor.LogProbability(word);
48 ofs << word << " " << signals.frequency << " " << logProbablity << " "
49 << signals.cohesion << " " << entropy << " " << signals.prefixEntropy
50 << " " << signals.suffixEntropy << std::endl;
51 }
52 ofs.close();
53}
54
55int main(int argc, const char* argv[]) {
56 try {

Callers 1

mainFunction · 0.70

Calls 3

LogProbabilityMethod · 0.80
strMethod · 0.45
ExtractMethod · 0.45

Tested by

no test coverage detected