FreeLing
4.0
|
00001 00002 #ifndef _CSR_KB_H 00003 #define _CSR_KB_H 00004 00005 #include <map> 00006 #include <list> 00007 #include <vector> 00008 #include <string> 00009 00010 namespace freeling { 00011 00013 00014 class csr_kb { 00015 00016 public: 00018 csr_kb(const std::wstring &, int, double, double); 00020 size_t get_vertex(const std::wstring &) const; 00021 00023 void pagerank(std::vector<double> &) const; 00024 00026 size_t size() const; 00027 00029 static const size_t VERTEX_NOT_FOUND; 00030 00031 private: 00033 int MaxIterations; 00035 double Threshold; 00037 double Damping; 00038 00040 std::map<std::wstring,size_t> vertex_index; 00042 std::vector<double> out_coef; 00043 00045 std::vector<size_t> first_edge; 00047 std::vector<size_t> num_edges; 00049 std::vector<size_t> edges; 00051 size_t num_vertices; 00052 00054 size_t add_vertex(const std::wstring &); 00056 void fill_CSR_tables(size_t, std::list<std::pair<size_t,size_t> > &); 00057 }; 00058 00059 00060 } // namespace freeling 00061 00062 #endif