Exemple #1
0
        public void TestParseSingleMobile()
        {
            PhoneNoParser         parser2 = new PhoneNoParser(TestUtility.CreateParserContext("+86 13482572088", ParserPattern.China));
            ParseResultCollection prc2    = parser2.Parse(0);

            Assert.AreEqual(1, prc2.Count);
            TestUtility.AssertParseResult(prc2[0], "+86 13482572088", 0, POSType.A_M);
            AssertPhoneValue(prc2[0], "86", null, "13482572088", null, true);
        }
        public void TestNotZhangSanCase()
        {
            ParseResultCollection prc = ParseChineseQuantity("李三买了一张三角桌子");

            Assert.AreEqual(4, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 4, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "张", 5, POSType.A_Q);
            TestUtility.AssertParseResult(prc[2], "三", 6, POSType.A_M);   //TODO: 是否要移除 三角
            TestUtility.AssertParseResult(prc[3], "角", 7, POSType.A_Q);
        }
Exemple #3
0
        public void TestParsePhones()
        {
            string text = "机关党工委  86780445 区政研室  86780455 老干部局  86780474  团区委  86780515 妇  联  86780524";
            ParseResultCollection prc = ParsePhoneNo(text);

            Assert.AreEqual(5, prc.Count);
            TestUtility.AssertParseResult(prc[0], "86780445", 7, POSType.A_M);
            AssertPhoneValue(prc[0], null, null, "86780445", null);
            TestUtility.AssertParseResult(prc[1], "86780455", 22, POSType.A_M);
            TestUtility.AssertParseResult(prc[2], "86780474", 37, POSType.A_M);
            TestUtility.AssertParseResult(prc[3], "86780515", 52, POSType.A_M);
            TestUtility.AssertParseResult(prc[4], "86780524", 67, POSType.A_M);
        }
        public void TestParseSinglePostalCode()
        {
            IParser p = new PostalCodeParser(TestUtility.CreateParserContext("200135,哈哈", ParserPattern.China));
            ParseResultCollection prc = p.Parse(0);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "200135", 0, POSType.A_M);

            p   = new PostalCodeParser(TestUtility.CreateParserContext("21201  Baltimore          Maryland(MD)", ParserPattern.NorthAmerica));
            prc = p.Parse(0);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "21201", 0, POSType.A_M);
        }
        public void TestParseSingleQuantity()
        {
            IParser p = new SimChineseQuantityParser(TestUtility.CreateParserContext("一棵树通常有二十五根树杈。"));
            ParseResultCollection prc = p.Parse(0);

            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 0, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "棵", 1, POSType.A_Q);

            prc = p.Parse(6);
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "二十五", 6, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "根", 9, POSType.A_Q);
        }
Exemple #6
0
        public void TestParseSingleNorthAmericanPhone()
        {
            PhoneNoParser         parser = new PhoneNoParser(TestUtility.CreateParserContext("+1-415-555-2374", ParserPattern.NorthAmerica));
            ParseResultCollection prc    = parser.Parse(0);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "+1-415-555-2374", 0, POSType.A_M);
            AssertPhoneValue(prc[0], "1", "415", "555-2374", null, true);

            parser = new PhoneNoParser(TestUtility.CreateParserContext("(800) 628-1058", ParserPattern.NorthAmerica));
            prc    = parser.Parse(0);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "(800) 628-1058", 0, POSType.A_M);
            AssertPhoneValue(prc[0], null, "800", "628-1058", null, true);
        }
        public void TestParseQuestionNoun()
        {
            IParser parser            = new SimChinesePronounParser(CreateParserContext("这里是谁负责的"));
            ParseResultCollection prc = parser.Parse(3);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "谁", 3, POSType.D_R);

            parser.Context.Text = "这到底是什么东西?";
            prc = parser.Parse(4);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "什么", 4, POSType.D_R);

            parser.Context.Text = "在哪里呀,在哪里";
            prc = parser.Parse(1);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "哪里", 1, POSType.D_R);
            prc = parser.Parse(6);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "哪里", 6, POSType.D_R);
        }
        public void TestParseDemostrativeNoun()
        {
            IParser parser            = new SimChinesePronounParser(CreateParserContext("《那些年我们一起追过的女孩》"));
            ParseResultCollection prc = parser.Parse(1);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "那些", 1, POSType.D_R);
            prc = parser.Parse(4);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "我们", 4, POSType.D_R);

            parser.Context.Text = "这儿的花别样红";
            prc = parser.Parse(0);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "这儿", 0, POSType.D_R);

            parser.Context.Text = "欢迎来到这里——FBI";
            prc = parser.Parse(4);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "这里", 4, POSType.D_R);
        }
        public void TestnParsePersonalNou()
        {
            IParser parser            = new SimChinesePronounParser(CreateParserContext("你们是我师兄。"));
            ParseResultCollection prc = parser.Parse(0);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "你们", 0, POSType.D_R);
            prc = parser.Parse(3);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "我", 3, POSType.D_R);

            parser.Context.Text = "快看,它们是可爱的小狗狗";
            prc = parser.Parse(3);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "它们", 3, POSType.D_R);

            parser.Context.Text = "是朕,还不快来救驾";
            prc = parser.Parse(1);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "朕", 1, POSType.D_R);
        }
Exemple #10
0
        public void TestParseSinglePhoneWithExtension()
        {
            PhoneNoParser         parser = new PhoneNoParser(TestUtility.CreateParserContext("+86 21 62253302#302", ParserPattern.China));
            ParseResultCollection prc    = parser.Parse(0);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "+86 21 62253302#302", 0, POSType.A_M);
            AssertPhoneValue(prc[0], "86", "21", "62253302", "302");

            parser = new PhoneNoParser(TestUtility.CreateParserContext("+86 21 62253302#302", ParserPattern.China));
            prc    = parser.Parse(0);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "+86 21 62253302#302", 0, POSType.A_M);
            AssertPhoneValue(prc[0], "86", "21", "62253302", "302");

            parser = new PhoneNoParser(TestUtility.CreateParserContext("+86 21 62253302#302a", ParserPattern.China));
            prc    = parser.Parse(0);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "+86 21 62253302#302", 0, POSType.A_M);
            AssertPhoneValue(prc[0], "86", "21", "62253302", "302");
        }
        public void TestParseFullSentenceForQuantity()
        {
            ParseResultCollection prc = ParseChineseQuantity("常用量词:一台机器 一部字典 一份杂志 十五台电脑一方手帕 一颗黄豆 10台洗衣机");

            Assert.AreEqual(14, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 5, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "台", 6, POSType.A_Q);
            TestUtility.AssertParseResult(prc[2], "一", 10, POSType.A_M);
            TestUtility.AssertParseResult(prc[3], "部", 11, POSType.A_Q);
            TestUtility.AssertParseResult(prc[4], "一", 15, POSType.A_M);
            TestUtility.AssertParseResult(prc[5], "份", 16, POSType.A_Q);
            TestUtility.AssertParseResult(prc[6], "十五", 20, POSType.A_M);
            TestUtility.AssertParseResult(prc[7], "台", 22, POSType.A_Q);

            TestUtility.AssertParseResult(prc[8], "一", 25, POSType.A_M);
            TestUtility.AssertParseResult(prc[9], "方", 26, POSType.A_Q);
            TestUtility.AssertParseResult(prc[10], "一", 30, POSType.A_M);
            TestUtility.AssertParseResult(prc[11], "颗", 31, POSType.A_Q);
            TestUtility.AssertParseResult(prc[12], "10", 35, POSType.A_M);
            TestUtility.AssertParseResult(prc[13], "台", 37, POSType.A_Q);
        }
Exemple #12
0
        public void TestParseSinglePhone()
        {
            PhoneNoParser         parser = new PhoneNoParser(TestUtility.CreateParserContext("(021)6655 2433", ParserPattern.China));
            ParseResultCollection prc    = parser.Parse(0);

            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "(021)6655 2433", 0, POSType.A_M);
            AssertPhoneValue(prc[0], null, "021", "6655 2433", null);

            parser = new PhoneNoParser(TestUtility.CreateParserContext("021-64393615", ParserPattern.China));
            prc    = parser.Parse(0);
            Assert.AreEqual(1, prc.Count);
            TestUtility.AssertParseResult(prc[0], "021-64393615", 0, POSType.A_M);
            AssertPhoneValue(prc[0], null, "021", "64393615", null);

            PhoneNoParser         parser2 = new PhoneNoParser(TestUtility.CreateParserContext("+86 21 6225 3302", ParserPattern.China));
            ParseResultCollection prc2    = parser2.Parse(0);

            Assert.AreEqual(1, prc2.Count);
            TestUtility.AssertParseResult(prc2[0], "+86 21 6225 3302", 0, POSType.A_M);
            AssertPhoneValue(prc2[0], "86", "21", "6225 3302", null);

            parser2 = new PhoneNoParser(TestUtility.CreateParserContext("电话号码:62253302", ParserPattern.China));
            prc2    = parser2.Parse(0);
            Assert.AreEqual(0, prc2.Count);

            prc2 = parser2.Parse(5);
            Assert.AreEqual(1, prc2.Count);
            TestUtility.AssertParseResult(prc2[0], "62253302", 5, POSType.A_M);
            AssertPhoneValue(prc2[0], null, null, "62253302", null);

            parser2 = new PhoneNoParser(TestUtility.CreateParserContext("13566223388(手机)", ParserPattern.China));
            prc2    = parser2.Parse(0);
            Assert.AreEqual(1, prc2.Count);
            TestUtility.AssertParseResult(prc2[0], "13566223388", 0, POSType.A_M);
        }
        public void TestParseQuantityFromIKAnalyzer()
        {
            ParseResultCollection prc = ParseChineseQuantity("1500名常用的数量和人名的匹配超过22万个");

            Assert.AreEqual(4, prc.Count);
            TestUtility.AssertParseResult(prc[0], "1500", 0, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "名", 4, POSType.A_Q);
            TestUtility.AssertParseResult(prc[2], "22万", 18, POSType.A_M);
            TestUtility.AssertParseResult(prc[3], "个", 21, POSType.A_Q);

            prc = ParseChineseQuantity("这个月我们家用了一百五十三度电");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一百五十三", 8, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "度", 13, POSType.A_Q);

            prc = ParseChineseQuantity("欢迎使用阿江统计2.01版");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "2.01", 8, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "版", 12, POSType.A_Q);

            prc = ParseChineseQuantity("千年等一回");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 3, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "回", 4, POSType.A_Q);

            prc = ParseChineseQuantity("关羽真是一员猛将");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 4, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "员", 5, POSType.A_Q);

            prc = ParseChineseQuantity("为了这三世姻缘");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "三", 3, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "世", 4, POSType.A_Q);

            prc = ParseChineseQuantity("鲁智深一拳打死郑关西,最后还踹了他一脚");
            Assert.AreEqual(4, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 3, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "拳", 4, POSType.A_Q);
            TestUtility.AssertParseResult(prc[2], "一", 17, POSType.A_M);
            TestUtility.AssertParseResult(prc[3], "脚", 18, POSType.A_Q);

            prc = ParseChineseQuantity("他家有15亩农田");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "15", 3, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "亩", 5, POSType.A_Q);

            prc = ParseChineseQuantity("这个文件总共有15.3兆");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "15.3", 7, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "兆", 11, POSType.A_Q);

            prc = ParseChineseQuantity("一元钱能干吗");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "一", 0, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "元", 1, POSType.A_Q);


            prc = ParseChineseQuantity("经历了两届奥运会");
            Assert.AreEqual(2, prc.Count);
            TestUtility.AssertParseResult(prc[0], "两", 3, POSType.A_M);
            TestUtility.AssertParseResult(prc[1], "届", 4, POSType.A_Q);
        }