zwfc.h

来自「中文分词算法,效率很高,使用词典树装搜索进行单词切割,并提供扩充词库的函数!」· C头文件 代码 · 共 57 行

H
57
字号
//---------------------------------------------------------------------------

#ifndef ZWFCH
#define ZWFCH

#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#include<stack>
using namespace std;
//---------------------------------------------------------------------------
const int s1 = 0XB0,s2 = 0XA1,e1 = 0XF8,e2 = 0XFF;
const int maxwordlen = 50;
//---------------------------------------------------------------------------
struct Second
{
	string key;
	Second *next;
	Second(string k = "",Second *n = 0):key(k),next(n){}
};
//---------------------------------------------------------------------------
struct Head
{
	int size;
	string key;
	vector<Second*> W;
	Head(string k = "",int s = 0):key(k),size(s){}
};
//---------------------------------------------------------------------------
class Dictiory
{
	vector<Head> H;
	ifstream fin;
	ifstream fcin;
	ofstream fout;
	int hash[e1 - s1][e2 - s2];
	int BinarySearch(string str,int k);
	int GetNum();
	void LoadDic();
	bool IsC(char c);
	bool IsEc(char c);
	void AddWord(string str,int k);
	void InsertWord(string str,int k);
	bool IsWord(string str,int k,int t);
	void SkipNotChinese(string &str,stack<string> &stk);
public:
    string Sfilename;
    string Dfilename;
	Dictiory();
    Dictiory(string sfilename,string dfilename);
	void SegmentWord(string s);
    void PrintDic();
};
//---------------------------------------------------------------------------
#endif
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?