forked from HIT-SCIR/ltp
-
Notifications
You must be signed in to change notification settings - Fork 0
Language Technology Platform
License
Guidachengong/ltp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
+++++***+++++ 2011-6-2] 所有的模型文件存放在ltp_data.zip中,因此运行LTP时需要先将该压缩包解压至当前文件夹。 +++++***+++++ 2010-2-2 升级SRL程序以及模型文件 +++++***+++++ 2009-12-18 ltp_data 可在如下地址下载: http://node03.gaoliqi.com/down/ltp_data.tgz +++++***+++++ 2009-10-12 同时支持Windows和Linux +++++***+++++ 2009-06-19 v2.1 1. 增加CRFWordSeg接口 2. 解决了若干svmtagger的bug 3. 解决了若干ner的bug 4. 解决LTP对文字进行修改的bug 5. 解决使用vector作为DLL接口参数类型的bug (VS2008下出错) 6. 更新LTP使用文档 7. 最新版我们只提供vs2008对应的DLL,如果希望在visual studio其他版本上运行,可以尝试安装 Microsoft Visual C++ 2008 Redistributable Package (x86) http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en +++++***+++++ 2008-12-30 使用svn来管理代码、数据、文档,并且将share-package也加入到这个体系中,支持自动发布:tools/distrubition.dat 增加vs2008支持 修改文档:LTP使用文档,updates.txt等 +++++***+++++ 2008-12-28 针对LTP网站上遇到输入空文本(只包含空格,全角空格)便会重新加载资源的问题: 如果处理过程中出错,不exit,只说明出错,并log 在ltp_v2.0_start.py中增加文档检查是否为空文本,如果是便不能提交。 网站使用最新DLL: gparser 刘龙提出分句模块还有些不合理,准备借鉴刘龙的分句正则表达式(python),使用boost库修改现在的模块。 +++++***+++++ 2008-12-26 将mstparser更名为gparser (graph-based parser) vs2008下编译运行时发现两个bug: 1. _gparser/MyLib.cpp中my_getline(): size_t end = xx.size() - 1; 改成 int end.. 2. _gparser/DepParser.cpp中addArcFeature: inst.postag[0]越界 修改_gparser/DepParser.cpp中fillInstance(): 增加postag, feat的resize 没有更新网上的共享v2.0 +++++***+++++ 2008-12-21 修改mstparser输出 wp->n 的情况,保证任何词的父亲不会是wp 删除sds, text-classify, cr相关代码,数据;保留xml4nlp中的相关代码(防止TMS系统使用) 保留mjs-parser #发现svmtagger的一个问题:2008年/m 12月/m 22日/m 应该是(nt) +++++***+++++ 2008-12-14 使用mstparser替换原来马金山的parser 修改相应的xmlnlp及ltp... 修改nlp_style.xsl为v2.0 +++++***+++++ 2008-09-23 TextClassify模块无论输入任何任何文本都输出“军事”。 删除模型中的SVMTestFile.dat即可(每次处理都会写这个文件)。 查看源代码发现: PatternChangeForSVM::OutputSVMDataFile()打开这个文件,没有判断是否打开。 而这个文件被我无意中变成了只读文件。 修改这个函数,判断文件是否成功打开,并且输出错误信息。 +++++***+++++ 2008-07-07 发布v1.5.0 +++++***+++++ 2008-7-5 srl处理某些文本的时候ARG的位置总是第1个。胡禹轩发现是模型问题,并且修正了这个错误。 +++++***+++++ 2008-7-1 svmtagger简单处理英文串?/ws;ppmmm/ws;之前识别为nh。 还需要改进:?/wp +++++***+++++ 2008-6-26 增加了基于svmtool的汉语词性标注模块。 接口: 保留原来的int IRLAS(),完成词法分析的功能:基于图的分词+基于HMM的词性标注 增加: int SegmentWord(); # 分词,调用IRLAS中的分词 int PosTag(); # 基于svmtool的词性标注。 保留IRLAS接口的原因: 和以前版本兼容,用户如果不想使用新的模块,则不需要修改程序。 方便用户对比两种词性标注方法。 用户如何修改原来的程序以使用新的词性标注模块? 将用户程序中的IRLAS直接替换成PosTag即可。(根据模块的依赖关系,PosTag会自动调用SegmentWord。) 另外需要注意: 如果调用了SegmentWord,那么只能通过PosTag进行词性标注。(IRLAS是一个集成的接口,要么做分词+词性标注,要么什么都不做。) +++++***+++++ 2006-10-12: 解决NE和SDS(单文档自动文摘)两个模块不能重复调用的问题,原因是这两个模块的资源加载和释放存在问题。 现在如下调用main2()就很顺利了。 void main() { clock_t start = clock(); cout << main2("S01.txt","S01.xml","ltpconfig.ini") << endl; cout << ((float)clock() - start) / CLOCKS_PER_SEC << endl; start = clock(); cout << main2("S01.txt","S02.xml","ltpconfig.ini") << endl; cout << ((float)clock() - start) / CLOCKS_PER_SEC << endl; } 我们会在下一次更新中,提供对各个模块更加灵活的调用方式。 +++++***+++++ 2006-10-16: 生成VC6下的DLL,共享给用户。 +++++***+++++ 2006-10-18 初步实现LTP的框架。 为了防止内存泄漏,修改XML4NLP这几个函数: 增加:~XML4NLP() {Clear();} BuildDOMFrame() 三个LoadDOMFrom...() 其中BuildDOMFrame,和其中的两个LoadDOMFrom必须改,否则会有内存泄漏。 +++++***+++++ 2006-10-22: 由于XML4NLP的结构存在根本上的问题:采用继承的方式使用TinyXml。 在程序中出现了大量的static_cast<InheritedClass *>(BaseClassObjPtr)的现象; 增加了程序复杂度; 无法方便的换解析器(如果要换的话); 抗错误操作的能力不强,异常机制也没有。 鉴于以上原因,重写XML4NLP,但是接口保持不变。 主要的改变: 不采用继承机制,而将TinyXml作为一个内部成员使用; 像以前一样采用树状结构,将DOM上对应doc, para, sent, word的节点存储在vector中; 增加了note及其操作; 改变以前的做法:如果还未分句,则将段落内容作为第一句。现在采用如果没有分段,则没有分句节点。 大量的错误判断,但是还是没有使用异常; 将所有的标记都以const char * const在头文件中声明,以后改变标记比较容易; 存在问题: 1. MapGlobalSentIdx2paraIdx_sentIdx() MapGloablWordIdx2paraIdx_sentIdx_wordIdx() 还没有进行优化。 2.inline的使用?为什么不能使用在头文件声明,cpp定义的方式?两个都使用了inline修饰符 +++++***+++++ 2006-10-24 1.为了对旧的LTML文件格式进行修改,增加了void CheckNoteForOldLtml();完成对旧的LTML检测哪些模块已经被调用了, 然后相应的添加note标记。 2.对SetInfoToSentence中vecInfo大小和word num不相等时的错误提示进行了修改。 3.实现了依赖关系 4.增加了irlas,ne,和sds的选项设置功能,但是由于还有一些设计上和模块自身的问题,推荐不要使用,而使用默认的选项设置。 sds的选项设置还提供了一个重载函数实现。 5.增加了错误判断,代码更加安全 +++++***+++++ 2006-12-4: 准备发布v1.2。 支持以前的接口,提供更多的,更灵活的接口。 需要在LTPv_1_2_share中做一些必要的变化。 2006-12-5: 修改xsl文件,以适应新的xml数据格式。(<para id=" ">...</para>) 考虑是否采用<note> +++++***+++++ 2006-12-16 1.修改接口 string XML4NLP::GetParagraph(int paragraphIdx) const; 为 int XML4NLP::GetParagraph(int paragraphIdx, string &strParagraph) const; +++++***+++++ 2006-12-18 1.增加接口。 由于DLL分配内存时在自己的local heap上分配,导致DLL中分配的内存无法在DLL外部释放。 因此类似 LTP_DLL_API int GetWordsFromSentence(vector<string> &vecWord, int sentenceIdx); 的接口都无法正常工作。 添加类似 LTP_DLL_API int GetWordsFromSentence(vector<const char *> &vecWord, int sentenceIdx); 这样的接口。需要在传入vecWord前根据CountWordInSentence(sentenceIdx)的值resize vecWord的大小。 +++++***+++++ 2006-12-21 增加了所有需要的接口以支持用户对DOM的get操作。并且进行了初步的测试。现在系统已经可以很方便的为实验室内部或外部使用。 祝慧佳修改了NERtest.cpp中 void NERtest::getNEstring(unsigned int& begpos, string& strOut) 函数。解决了 "田壮/nh 壮憨然/nh 一/m 笑/v "; "炮轰/v 布什/nh 越战/j 中/j 退缩/v "; 有时无法正常显示的问题。 改变了WSD的部分接口,使得数据路径可配置。 +++++***+++++ 2006-12-25 由于林建国给的TextClassify新版本在VC7下面无法正常编译,因此我自行改了一下原来的版本,使得数据文件位置可配置。 Parser我也改了一下。所有的数据文件路径都可配置。 修改了LTP配置文件的内容。 +++++***+++++ 2006-12-30 遇到了问题: ltp_dll调用sds时,使用了system("del tmp.xml"),却没有删除!可能是文件夹只读的原因(无法改回去)。 分词问题(导致NE问题,进而cr也会产生一些问题,现在cr只是随便应付一下,不至于无法运行): <word id="10" cont="展示" pos="v" parent="9" relate="VOB" ne="O" /> <word id="11" cont="的" pos="u" parent="15" relate="ATT" ne="O" /> <word id="12" cont="穆" pos="j" parent="13" relate="ATT" ne="B-Nh" /> <word id="13" cont="哈" pos="j" parent="14" relate="ATT" ne="B-Nh" /> <word id="14" cont="吉尔" pos="nh" parent="15" relate="ATT" ne="B-Nh" /> <word id="15" cont="照片" pos="n" parent="16" relate="DE" ne="O" /> <word id="16" cont="的" pos="u" parent="17" relate="ATT" ne="O" /> <word id="17" cont="相貌" pos="n" parent="18" relate="SBV" ne="O" /> </word> <word id="10" cont="马斯理" pos="nh" parent="14" relate="ATT" ne="S-Nh" /> <word id="11" cont="过去" pos="nt" parent="12" relate="ADV" ne="O" /> <word id="12" cont="经历" pos="v" parent="13" relate="DE" ne="O"> <arg id="0" type="ArgM-TMP" beg="11" end="11" /> </word> <word id="13" cont="的" pos="u" parent="14" relate="ATT" ne="O" /> <word id="14" cont="细节" pos="n" parent="9" relate="VOB" ne="O" /> <word id="15" cont="," pos="wp" parent="-2" relate="PUN" ne="O" /> <word id="16" cont="却" pos="d" parent="17" relate="ADV" ne="O" /> <word id="17" cont="连" pos="v" parent="7" relate="VV" ne="O"> <arg id="0" type="Arg1" beg="18" end="20" /> </word> <word id="18" cont="他" pos="r" parent="19" relate="DE" ne="O" /> <word id="19" cont="的" pos="u" parent="20" relate="ATT" ne="O" /> <word id="20" cont="真名" pos="n" parent="17" relate="VOB" ne="O" /> <word id="21" cont="(" pos="wp" parent="-2" relate="PUN" ne="O" /> <word id="22" cont="穆哈吉尔" pos="nh" parent="26" relate="IS" ne="S-Nh" /> <word id="23" cont=")" pos="wp" parent="-2" relate="PUN" ne="O" /> <word id="24" cont="都" pos="d" parent="26" relate="ADV" ne="O" /> <word id="25" cont="不" pos="d" parent="26" relate="ADV" ne="O" /> <word id="26" cont="知道" pos="v" parent="7" relate="VV" ne="O" /> <word id="27" cont="。" pos="wp" parent="-2" relate="PUN" ne="O" /> 增加了一层包装,不需要用户自己resize()。 clear()不是basic_string的成员!因此XML4NLP类中的一些就需要修改一下。 教训是:应该至少在VC6下也测试一遍。 修改成 strParagraph = ""; 另外: if (0 != CheckRange(paragraphIdx)) -1; 居然可以编译通过! 赶紧修改过来。 VC6不支持语法: class LTP { static const unsigned int DO_XML = 1; static const unsigned int DO_SPLITSENTENCE = 1 << 1; static const unsigned int DO_IRLAS = 1 << 2; } 修改成: class LTP { static const unsigned int DO_XML = 1; static const unsigned int DO_SPLITSENTENCE = 1 << 1; } 然后在ltp.cpp中定义: const unsigned int LTP::DO_XML = 1; const unsigned int LTP::DO_SPLITSENTENCE = 1 << 1; 对inline函数的定义修改成规范的定义方式,在头文件中定义。 增加LTP_DLL接口: LTP_DLL_API int CreateDOMFromString(const char *str); 如果没有这个接口,在VC6中调用 CreateDOMFromString("我是一个中国人") 就会抛出异常。可能还是分配内存的问题。 现在,VC7.1中生成的DLL就可以在VC6中使用了。 增加了接口: LTP_DLL_API const char *GetParagraph(int paragraphIdx); 修改: void XML4NLP::ClearDOM() { m_tiXmlDoc.Clear(); m_document_t.documentPtr = NULL; m_document_t.vecParagraph_t.clear(); m_note.nodePtr = NULL; m_summary.nodePtr = NULL; m_textclass.nodePtr = NULL; m_coref.nodePtr = NULL; m_coref.vecEntity.clear(); // 增加! m_vecBegWordIdxOfStns.clear(); m_vecBegStnsIdxOfPara.clear(); } +++++***+++++ 2006-12-30 通过反复验证: 发现使用VC7生成DLL,如果接口含有string,如 _declspec (dllexport) void processString(const string &str) { cout << str.size() << endl; } 如果使用VC6程序调用,则会输出很大的数,可以称为乱码。 怀疑在vc6和vc7.1在这方面不兼容,本身对string的实现就不一样。 而如果用同一种平台,不会出错。 此时如果使用string的复制等肯定会出错! 为此修改几个LTP接口:(不能有string参数) 将__ltp_dll.h中的 LTP_DLL_API int CreateDOMFromString(const string &str); 修改成: inline int CreateDOMFromString(const string &str) // Due to incompatible between VC6 and VC7.1 in DLL { return CreateDOMFromString(str.c_str()); } 改变了几个接口,使接口形式一致: LTP_DLL_API int _GetPredArgToWord( vector<const char *> &vecType, vector< pair<int, int> > &vecBegEnd, int paragraphIdx, int sentenceIdx, int wordIdx); LTP_DLL_API int _GetPredArgToWord( vector<const char *> &vecType, vector< pair<int, int> > &vecBegEnd, int globalSentIdx, int wordIdx); LTP_DLL_API int _GetPredArgToWord( vector<const char *> &vecType, vector< pair<int, int> > &vecBegEnd, int globalWordIdx); int GetPredArgToWord( vector<const char *> &vecType, vector< pair<int, int> > &vecBegEnd, int paragraphIdx, int sentenceIdx, int wordIdx); int GetPredArgToWord( vector<const char *> &vecType, vector< pair<int, int> > &vecBegEnd, int globalSentIdx, int wordIdx); int GetPredArgToWord( vector<const char *> &vecType, vector< pair<int, int> > &vecBegEnd, int globalWordIdx); 之前输出参数在后,输入参数在前。 +++++***+++++ 2007-1-11 对外正式发布LTPv1.2 2007-1-14 增加了ltp_dll_for_python.dll,完成了Python Interface 2007-1-16 将工程中所有的GetMentionOfEnity修改为GetMentionOfEntity() 在Parser.cpp中,函数void CParser::CreateLeaf(int i)使用了vector::erase(iter+0)操作, 然后没有对iter进行赋值就直接继续使用。这是一个潜在的bug,在VC2005中体现出来。 VC2005代码的安全性更高了。 但是有一个问题:VC2005生成的Release版DLL只能用在Release工程中,Debug也是一样,无法在一个Debug工程中使用Release版的DLL。 还需要进一步验证。实验室只有刘怀军师兄真正使用VC2005调用LTP。 2007-1-21 修改了nlp_style.xsl中parser的显示部分: 1.箭头从parent指向children 2.句法分析结果中,某一个词的句法角色未知,此时其parent为自己的word idx,不显示这个词对应的弧 +++++***+++++ 2007-4-4 Parser越界错误 Phrase.cpp +++++***+++++ 2007-4-10 IRLAS的extend_dict解密,相应的加载过程也修改了Dictionary.cpp。(by 付瑞吉) +++++***+++++ 2007-4-13 发布v1.3 1.IRLAS的extend_dict解密,不采用加密文件 2.Parser越界错误 3.采用LTMLv2.0格式 4.发布python包 5.补充英文文档 由于LTMLv2.0中去掉了wsdexp属性,所以ltp_dll的接口需要改变一下。可以考虑提供两个版本:一个是没有去掉wsdexp的,另一个是去掉的。 对于C接口(for python, perl...),需要wsdexp在DOM中存在,因此比较麻烦。 所以v1.3中仍然采用LTMLv1.0,即旧的格式。 将网站上LTP更新为LTPv1.3。 +++++***+++++ 2007-4-30 刘老师要求修改句法可视化的弧的指向,从head节点指向依存节点(和以前相反),因此使用2007-1-21为马金山师兄提供的xsl版本。 发布v1.3.1 发现还存在一些问题:按句子显示时,句法显示和上面的显示有重叠现象,原因是 +++++***+++++ 2007-6-14 分句对句子长度限制为1024,潘越群发现太小了 改成 #define POLARIS_SENTENCE_LENGTH 0xFFFF +++++***+++++ 2007-6-23 修改了模块、资源、网页等,统一正名为HIT IR Lab或者HIT-IR,更新了论坛地址,ltp的demo地址 +++++***+++++ 2007-6-27 郎君提出 修改nlp_style.xsl文件中网页顶部显示部分,更新了论坛地址,去掉了密码iloveirlab +++++***+++++ 2007-6-27 王健楠提出 xmlnlp.cpp中分段处理 CreateDOMFromString("中国\r\n\r\n美国"),无法正常分段 于是将\r替换成\n +++++***+++++ 2007-7-16 宋巍提出问题 修改分句模块:SplitSentence.cpp 原来认为如果一段话的分句结果中包含0个句子时,就表示错误。 修改之后程序更加健壮了,即使遇到只含有空格的段落,也可以正确处理。 +++++***+++++ 2007-8-31 浙大仇光提出问题 如果文本中出现只包含空白符的行时,分词模块就会出错。 修改XML4NLP::CreateDOM时的做法,在BuildParagraph之前,将每一行的句首及句尾的空白符全部去掉。 v1.3.4 +++++***+++++ 2007-11-21 王丽杰对xsl文件进行更新 2007-11-22 郭宇航找到一个bug 藩 的第二个字节是 '[' Parser中:Extract()字符串处理时,没有考虑这个问题。 修改后的dll已经在网站上更新。 2007-11-22 Parser中: parser_dll_x.cpp中 void Parse(vector < string >& vecWord, vector < string >& vecPOS, vector < pair<int,string> >& vecParse) 中 原来为: char * csOutput = new char[vecWord.size() * 50]; 现在改为: int i = 0; for (; i < vecWord.size(); ++i) { nChar += strlen(vecWord[i].c_str()); } char * csOutput = new char[nChar * 2 + vecWord.size() * 32]; 因为有的时候会输入: "------------------------------------"或者很长的数字串,这样会造成内存越界问题。 2007-11-22 SDS中: void SDS_TS::SelectSnt() 定义: unsigned sntNum; 但是后面用到: sntNum = m_vctSntPairs_Score[summarySntNum].m_nSntNum - 1; if(sntNum >= 0) { ... } 此时当 m_vctSntPairs_Score[summarySntNum].m_nSntNum == 0时: sntNum = 0xFFFF; 2007-11-22 NER NERtestDll_x.cpp中: char* presult = new char[5000]; 当句子过长的时候,会出现内存越界。修改为: int nChar = 0; for (int i=0; i<(int)vecWord.size(); ++i) { nChar += vecWord[i].size(); } const int SZ = nChar + vecWord.size() * 10; char* presult = new char[SZ]; 2007-11-22 Parser中,由于分句模块分出的句子太长 考虑将分句模块的句长减小,由 #define POLARIS_SENTENCE_LENGTH 0xFFFF 变为: #define POLARIS_SENTENCE_LENGTH 0x1024 这样一句话最多约为500个汉字。和原来一样。 2007-11-23 Parser MyLib.cpp中: string itos(int i); char buf[4]; 太小了。 当i >= 1000时,便会发生异常。改为: char buf[256]; 同时我对Parser中 void GetParseResults(vector < string >& vecWord, vector < string >& vecPOS, char * strOutput) 的代码进行了优化。 2007-11-23 王丽杰 nlp_style.xsl中 action = "Try.py" 改为 action = "ltp_v1.3_start.py" 2007-12-1 NER模块更新,使用最大熵模型(付瑞吉) SRL模块更新使用最大熵模型(胡禹轩) SRL:(Release) 加载数据资源数据,约15秒 处理13K文件需要25秒 SRL还有一个bug,ARG范围(beg end)重叠overlapped 让王丽杰修改xsl文件,绕过这个bug。 2007-12-2 LTP升级为v1.4.0包括网站程序 2007-12-3 王丽杰修改xsl文件,完善句法分析按句子显示时不能自动break的问题。 xsl文件有一处需要改动一下,在“按句子显示”的“句法分析”下面定义的table, body +='<table style="border: SOLID 0px black;word-break:break-all;" bgcolor="black" width="'+ widthTable +'" cellpadding="0" cellspacing="1">'; 红色为新加入的,否则对于英文,table不会自动换行的,使得句法分析树有些错乱。 例句:参数errcode是来自函数regcomp()或regexec()的错误代码,而参数preg则是由函数regcomp()得到的编译结果,其目的是把格式化消息所必须的上下文提供给regerror()函数。在执行函数regerror()时,将按照参数errbuf_size指明的最大字节数,在errbuf缓冲区中填入格式化后的错误信息,同时返回错误信息的长度。 NER的Bug: IRLAS的结果中可能会出现类似: 也/d 是/v 国内/nl SVM/ws 最好/d 的/u 学者/n 之/u 一 /m 4/m 、/wp 数据/n 挖掘/v 中/nd 的/u 新/a 方法/n :/wp 一 /m :/wp "/"前有空格。这样NE在内部处理的时候没有考虑到这个情况。 也可以认为是IRLAS的bug。 修改了IRLAS_DLL_x.cpp文件,将分词结果中每个词中包含的' '去掉。 修改NER_DLL_x.cpp文件,修改了从 也/d#O 是/v#O 国内/nl#O SVM/ws#O 最好/d#O 抽取结果的方式。 NEReg的返回值由void变为int,相应LTP.cpp中调用NEReg函数时也有所变化。 2007-12-3 胡禹轩修改了srl中overlapped的bug 上午修改IRLAS_DLL_x.cpp的时候使用到了MyLib.cpp。 但是ltp中有很多MyLib.cpp 如: _irlas/MyLib.cpp __util/MyLib.cpp _parser/MyLib.cpp 等,现在还没有统一。 我简单的将_irlas/MyLib.cpp替换__util/MyLib.cpp,导致出现了新的bug。 因为_irlas/MyLib.cpp和__util/MyLib.cpp中convert_to_pair的实现不相同。 完成功能是:、/wp => [、][wp] _irlas/MyLib.cpp中的实现是错误的。 修订了这个bug。更新一下v1.4.1 2007-12-6 王丽杰修改xsl,显示srl的语义框架,采用绝对路径。这样给用户共享的xsl通过从服务器download文件,显示语义框架。 王丽杰修改了关于srl显示的bug。 2007-12-8 王丽杰修改xsl显示,使ARG等显示居中。 胡禹轩修改DepSRL.h DepSRL.cpp Arg的名字过长也影响美观,请禹轩输出的时候修改一下吧,ARG0->A0,ARGM-ADV->AM-ADV等等。 2007-12-28 Parser_dll.h中原来的宏定义有问题。 修改为: #ifdef _WIN32 #undef PARSER_DLL_API #ifdef PARSER_DLL_API_EXPORT #define PARSER_DLL_API extern "C" _declspec(dllexport) #else #define PARSER_DLL_API extern "C" _declspec(dllimport) #endif #endif Parser增加接口Parse_with_postag() 这个接口直接提供词性细分类,parse预处理时再词性细分类了。 2008-1-11 Parser中Parser.cpp 中 float CParser::Smoothen(float ftd, float ftt, float ftttt, float ftw, float fwt, float fww) 中增加: if (fProb <= 0.00000001) fProb = 0.00000001; 否则存在log(0)隐患。 2008-1-21 根据公司合同,修改了各个底层模块的接口(除CR外)。 2008-1-24 修改了各个xxx_DLL.h中的宏定义 2008-1-29 将CR更新为我本科时做的基于规则的方法。 2008-2-22 付瑞吉修改NE模块中的一个bug,越界等 2008-4-23 准备将srl更新为最新版本,出现问题,“摘要:”及“(” 发现可视化程序的一个小bug:“摘要:” 2008-4-24 胡禹轩修改了srl的bug 可视化程序的bug没有修改,原因是按句子显示的时候没有EOS节点。暂时不考虑了。 升级LTP至1.4.3
About
Language Technology Platform
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C++ 80.5%
- C 16.4%
- CMake 1.9%
- Python 1.1%
- Other 0.1%