Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);        //出现两个上海时,以第一个为准
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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弄");
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
 ParserContext CreateParserContext(string text)
 {
     return(GeneralParserTest.CreateParserContext(text, dictAddr));
 }