FreeLing  4.0
csr_kb.h
Go to the documentation of this file.
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