public void TestParseFullSentenceForPublisherName() { ParseResultCollection prc = ParseChineseOrgName("《软件测试方法与技术实践指南Java EE版》已经由清华大学出版社出版"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "清华大学出版社", 26, POSType.A_NT); prc = ParseChineseOrgName("作为法律出版社新书、重点书发布平台,我们致力于为读者提供优质的信息服务。"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "法律出版社", 2, POSType.A_NT); }
public void TestParseNotZhangSanCase() { IParser p = new NameParser(GeneralParserTest.CreateParserContext("李三买了一张三角桌子", dictServer)); ParseResultCollection prc = p.Parse(0); Assert.AreEqual(2, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "李", 0, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[1], "三", 1, POSType.A_NR); prc = p.Parse(5); Assert.AreEqual(0, prc.Count); }
public void TestParseSinglePostalCode() { IParser p = new PostalCodeParser(GeneralParserTest.CreateParserContext("200135,哈哈", ParserPattern.China)); ParseResultCollection prc = p.Parse(0); Assert.AreEqual(1, prc.Count); AssertParseResult(prc[0], "200135", 0, POSType.A_M); p = new PostalCodeParser(GeneralParserTest.CreateParserContext("21201 Baltimore Maryland(MD)", ParserPattern.NorthAmerica)); prc = p.Parse(0); Assert.AreEqual(1, prc.Count); AssertParseResult(prc[0], "21201", 0, POSType.A_M); }
public void TestParseSingleAddressWithDuplicateCity() { IParser parser = new ChineseAddressParser(CreateParserContext("上海市上海市黄浦区外马路1410号")); ParseResultCollection prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海市上海市黄浦区外马路1410号", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, "上海市", "黄浦区", "外马路", "1410号", null, null); parser = new ChineseAddressParser(CreateParserContext("上海上海市黄浦区外马路1410号")); prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海黄浦区外马路1410号", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, "上海", "黄浦区", "外马路", "1410号", null, null); //出现两个上海时,以第一个为准 }
public void TestParseFullSentenceForOrgName() { ParseResultCollection prc = ParseChineseOrgName("郑荣科 07行政管理专业 现任职于上海江正营销策划有限公司"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海江正营销策划有限公司", 17, POSType.A_NT); prc = ParseChineseOrgName("李承龙 08民航 现任职于中国南方国际航空。"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "中国南方国际航空", 13, POSType.A_NT); prc = ParseChineseOrgName("李林玲(左) 06旅游管理班 现任职于上海中福大酒店。"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海中福大酒店", 19, POSType.A_NT); }
public void TestParsePlaceName() { IParser p = new PlaceNameParser(GeneralParserTest.CreateParserContext("你好,我在上海,他在北京。", dictAddr)); ParseResultCollection prc = p.Parse(0); Assert.AreEqual(0, prc.Count); prc = p.Parse(5); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海", 5, POSType.A_NS); prc = p.Parse(10); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "北京", 10, POSType.A_NS); }
public void TestParseSingleName() { IParser p = new NameParser(GeneralParserTest.CreateParserContext("你好,我叫毛泽东,这位是朱德同志。", dictServer)); ParseResultCollection prc = p.Parse(5); Assert.AreEqual(2, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "毛", 5, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[1], "泽东", 6, POSType.A_NR); prc = p.Parse(12); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "朱", 12, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[1], "德", 13, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[2], "同志", 14, POSType.D_N); }
public void TestParseSingleAddress() { IParser parser = new ChineseAddressParser(CreateParserContext("上海市黄浦区外马路1410号")); ParseResultCollection prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海市黄浦区外马路1410号", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, "上海市", "黄浦区", "外马路", "1410号", null, null); parser = new ChineseAddressParser(CreateParserContext("上海市黄浦区陆家浜路413弄5号702室(金南新苑商务楼)")); prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "上海市黄浦区陆家浜路413弄5号702室(金南新苑商务楼)", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, null, "上海市", "黄浦区", "陆家浜路", "5号", null, "702室", null, null, "413弄"); parser = new ChineseAddressParser(CreateParserContext("中国上海市浦东新区银城中路68号时代金融中心大厦38楼")); prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "中国上海市浦东新区银城中路68号时代金融中心大厦38楼", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, "中国", null, "上海市", "浦东新区", "银城中路", "68号", "38楼", null, "时代金融中心大厦"); parser = new ChineseAddressParser(CreateParserContext("杭州市体育场路453号14楼302室")); prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "杭州市体育场路453号14楼302室", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, "杭州市", null, "体育场路", "453号", "14楼", "302室"); parser = new ChineseAddressParser(CreateParserContext("地址:杭州市江干区九堡九环路六十号")); prc = parser.Parse(3); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "杭州市江干区九堡九环路六十号", 3, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, "杭州市", "江干区", "九堡九环路", "六十号", null, null); parser = new ChineseAddressParser(CreateParserContext("杭州西湖区文二西路2号")); prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "杭州西湖区文二西路2号", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, "杭州", "西湖区", "文二西路", "2号", null, null); parser = new ChineseAddressParser(CreateParserContext("长乐路460弄10号")); prc = parser.Parse(0); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "长乐路460弄10号", 0, POSType.D_S); AssertAddressValue((ChineseAddress)prc[0].Value, null, null, null, null, "长乐路", "10号", null, null, null, null, "460弄"); }
public void TestParseNameWithSuffix() { IParser p = new NameParser(GeneralParserTest.CreateParserContext("王教授给我们授课", dictServer)); ParseResultCollection prc = p.Parse(0); Assert.AreEqual(2, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "王", 0, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[1], "教授", 1, POSType.D_N); p = new NameParser(GeneralParserTest.CreateParserContext("王琪斌教授给我们授课", dictServer)); prc = p.Parse(0); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "王", 0, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[1], "琪斌", 1, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[2], "教授", 3, POSType.D_N); }
public void TestParseFullSentenceForPlaceNames() { ParseResultCollection prc = ParsePlaceName("沈阳的天气真好,如果哪天我能去沈阳玩就好了。呼和浩特那里咋样?"); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "沈阳", 0, POSType.A_NS); GeneralParserTest.AssertParseResult(prc[1], "沈阳", 15, POSType.A_NS); GeneralParserTest.AssertParseResult(prc[2], "呼和浩特", 22, POSType.A_NS); ParseResultCollection prc2 = ParsePlaceName("传统“金砖四国”(BRIC)引用了巴西、俄罗斯、印度和中国的英文首字母。"); Assert.AreEqual(4, prc2.Count); GeneralParserTest.AssertParseResult(prc2[0], "巴西", 17, POSType.A_NS); GeneralParserTest.AssertParseResult(prc2[1], "俄罗斯", 20, POSType.A_NS); GeneralParserTest.AssertParseResult(prc2[2], "印度", 24, POSType.A_NS); GeneralParserTest.AssertParseResult(prc2[3], "中国", 27, POSType.A_NS); }
public void TestNameWithPunctuation() { IParser p = new NameParser(GeneralParserTest.CreateParserContext("(记者李术峰)", dictServer)); ParseResultCollection prc = p.Parse(1); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "记者", 1, POSType.D_N); GeneralParserTest.AssertParseResult(prc[1], "李", 3, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[2], "术峰", 4, POSType.A_NR); p = new NameParser(GeneralParserTest.CreateParserContext("张,", dictServer)); prc = p.Parse(0); Assert.AreEqual(0, prc.Count); p = new NameParser(GeneralParserTest.CreateParserContext("(记者李术峰 )", dictServer)); prc = p.Parse(1); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "记者", 1, POSType.D_N); GeneralParserTest.AssertParseResult(prc[1], "李", 3, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[2], "术峰", 4, POSType.A_NR); }
public void TestParseFullSentenceForSchool() { ParseResultCollection prc = ParseChineseOrgName("09/01/1996 – 07/01/1999 安徽省肥东第二中学高中部学习"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "安徽省肥东第二中学", 25, POSType.A_NT); prc = ParseChineseOrgName("09/01/1999 – 07/01/2003 安徽大学数学系数学与应用数学专业学习"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "安徽大学", 25, POSType.A_NT); prc = ParseChineseOrgName("09/01/1999 – 07/01/2003 清华大学数学系"); Assert.AreEqual(1, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "清华大学", 25, POSType.A_NT); prc = ParseChineseOrgName("北京大学、清华大学和中国人民大学高居2008中国最受媒体关注大学排行榜前三强"); Assert.AreEqual(4, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "北京大学", 0, POSType.A_NT); GeneralParserTest.AssertParseResult(prc[1], "清华大学", 5, POSType.A_NT); GeneralParserTest.AssertParseResult(prc[2], "中国人民大学", 10, POSType.A_NT); GeneralParserTest.AssertParseResult(prc[3], "中国最受媒体关注大学", 22, POSType.A_NT); }
public void TestParseNameWithPrefix() { IParser p = new NameParser(GeneralParserTest.CreateParserContext("老张说这里是我们的地盘", dictServer)); ParseResultCollection prc = p.Parse(0); Assert.AreEqual(2, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "老", 0, POSType.D_N); GeneralParserTest.AssertParseResult(prc[1], "张", 1, POSType.A_NR); p = new NameParser(GeneralParserTest.CreateParserContext("劳动模范代表李素丽", dictServer)); prc = p.Parse(4); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "代表", 4, POSType.D_N); GeneralParserTest.AssertParseResult(prc[1], "李", 6, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[2], "素丽", 7, POSType.A_NR); p = new NameParser(GeneralParserTest.CreateParserContext("国务院副总理钱其琛向全国人民", dictServer)); prc = p.Parse(4); Assert.AreEqual(3, prc.Count); GeneralParserTest.AssertParseResult(prc[0], "总理", 4, POSType.D_N); GeneralParserTest.AssertParseResult(prc[1], "钱", 6, POSType.A_NR); GeneralParserTest.AssertParseResult(prc[2], "其琛", 7, POSType.A_NR); }
ParserContext CreateParserContext(string text) { return(GeneralParserTest.CreateParserContext(text, dictAddr)); }