⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postagging.h

📁 一个集分词、词性标注和格式转换的强大的工具包
💻 H
字号:
#define uchar unsigned char

void TrainFile(CString FileName); // 对单个文件进行训练获取词性标注用的参数
void TaggingFile(CString FileName); // 对单个文件进行词性标注

class CCoMatrix: public CObject
{
DECLARE_SERIAL(CCoMatrix)
private:
	int CorpusSize; // 语料规模,以词为计量单位
	int * TagFreqs;
	int * Matrix;

public:
	CStringArray * pTags; // 存放词性标记
	CStringArray * pOpenTags; //存放开放词性标记
	BOOL possetModified; // 指示是否读入了新的词性标记集
	CString FileName; // 存放CoMatrix类数据信息(包含词性标记集及转移矩阵)的数据文件

	CCoMatrix();
	~CCoMatrix();
	BOOL Ready(); // 判断是否读入词性标记集信息,以及是否已有模型参数
	double GetCoProb(uchar tag1, uchar tag2);
	double GetWordProb(double wtFreq, uchar tag);
	void Create(CStdioFile & tagFile);
	void Clean();
	void AddCorpus(CStdioFile & trainFile);
	virtual void Serialize(CArchive &ar);
	int GetIndexOf(CString tag); // 将词性标记转换成序号
	CString GetTagOf(uchar i); // 将序号转换成词性标记
	int GetTagFreq(uchar i); // 求某种标记的频度
	void WriteTo(CStdioFile out); // 将词性标记转移矩阵输出到文本文件中
};

class CSpan
{
public:
	CString Words[20]; // 一个Span中最多包含20个词
	uchar Tags[20][10]; // 用于存放每个词的每个标记序号,每个词最多10个标记
	double Freqs[20][10]; // 用于存放每个词的每个标记的出现次数
	char GoodPrev[20][10]; // 用于存放每个词的每个标记的最佳前驱标记是前一个词的第几个词性标记
	char CurLength; // 用于存放当前词串的实际长度
	double sumFee[20][10]; // 用于存放每个词的每个标记的累计费用

public:
	CSpan(); 
	~CSpan();

	void GetFrom(CString &s);
	void GuessTag(char i);
	void Disamb();
	void WriteTo(CStdioFile out); // 将span的排歧结果输出到文件
	CString Output(); // 将span的排歧结果输出到数组
	void Reset();
	int GetSize() {return CurLength;}
};

⌨️ 快捷键说明

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