SegGraph.h
上传用户:sunyong76
上传日期:2021-10-03
资源大小:2236k
文件大小:3k
源码类别:

多国语言处理

开发平台:

Java

  1. //////////////////////////////////////////////////////////////////////
  2. //ICTCLAS简介:计算所汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),
  3. //             功能有:中文分词;词性标注;未登录词识别。
  4. //             分词正确率高达97.58%(973专家评测结果),
  5. //             未登录词识别召回率均高于90%,其中中国人名的识别召回率接近98%;
  6. //             处理速度为31.5Kbytes/s。
  7. //著作权:  Copyright?2002-2005中科院计算所 职务著作权人:张华平 刘群
  8. //遵循协议:自然语言处理开放资源许可证1.0
  9. //Email: zhanghp@software.ict.ac.cn
  10. //Homepage:www.nlp.org.cn;mtgroup.ict.ac.cn
  11. /****************************************************************************
  12.  *
  13.  * Copyright (c) 2000, 2001 
  14.  *     Machine Group
  15.  *     Software Research Lab.
  16.  *     Institute of Computing Tech.
  17.  *     Chinese Academy of Sciences
  18.  *     All rights reserved.
  19.  *
  20.  * This file is the confidential and proprietary property of 
  21.  * Institute of Computing Tech. and the posession or use of this file requires 
  22.  * a written license from the author.
  23.  * Filename:  SegGraph.h
  24.  * Abstract:
  25.  *           interface for the Word Segmentation Directed Graph.
  26.  * Author:   Kevin Zhang 
  27.  *          (zhanghp@software.ict.ac.cn)
  28.  * Date:     2002-4-18
  29.  *
  30.  * Notes:
  31.  *                
  32.  * 
  33.  ****************************************************************************/
  34. // SegGraph.h: interface for the CSegGraph class.
  35. //
  36. //////////////////////////////////////////////////////////////////////
  37. #if !defined(AFX_SEGGRAPH_H__E051AD07_F18C_4171_94D6_39742104EB62__INCLUDED_)
  38. #define AFX_SEGGRAPH_H__E051AD07_F18C_4171_94D6_39742104EB62__INCLUDED_
  39. #if _MSC_VER > 1000
  40. #pragma once
  41. #endif // _MSC_VER > 1000
  42. #include "..\Utility\Dictionary.h"//Dictionary
  43. #include "DynamicArray.h"//Dynamic array
  44. #define MAX_FREQUENCE   2079997//7528283+329805  //1993123+86874 
  45. #define MAX_SENTENCE_LEN 2000
  46. class CSegGraph  
  47. {
  48. public:
  49. bool GenerateWordNet(char *sSentence,CDictionary &dictCore,bool bOriginalFreq=false);
  50. //Generate the segmentation word net according the original sentence
  51. //sSentence: the sentence
  52. //dictCore: core dictionary
  53. //bool bOriginalFreq=false: output original frequency
  54. CSegGraph();
  55. virtual ~CSegGraph();
  56. char m_sAtom[MAX_SENTENCE_LEN][WORD_MAXLENGTH];//pAtoms: the buffer for returned segmented atoms
  57. // Such as a Chinese Char, digit, single byte, or delimiters
  58. int m_nAtomLength[MAX_SENTENCE_LEN];//Save the individual length of atom in the array
  59. int m_nAtomPOS[MAX_SENTENCE_LEN];//pAtoms: the POS property 
  60. unsigned int m_nAtomCount;//The count of atoms
  61. CDynamicArray m_segGraph;
  62. //segGraph: The segmentation word graph
  63. //Row first array
  64. protected:
  65. bool AtomSegment(char *sSentence);
  66. //Segment the atomic members from the original sentence
  67. //sSentence: the sentence
  68. //pAtoms: the buffer for returned segmented atoms
  69. //        Such as a Chinese Char, digit, single byte, or delimiters
  70. /*----Added By huangjin@ict.ac.cn 2006-9-12----*/
  71. int UpdateAtoms( int j, const char* str, int nPOS=-1, bool bApp=true );
  72. //j: the index of m_sAtoms and so on
  73. /*---------------------------------------------*/
  74. };
  75. #endif // !defined(AFX_SEGGRAPH_H__E051AD07_F18C_4171_94D6_39742104EB62__INCLUDED_)