Exemple #1
0
    public static void ExtractNsFromDP()
    {
        var           NsDict = new StreamWriter("ns.dict");
        List <String> Dirs   = new List <string>();
        List <String> Ns     = new List <String>();

        Dirs.Add(@"E:\WorkSpace2018\FDDC2018\FDDC_announcements_round1_train_20180518\round1_train_20180518\重大合同\dp");
        Dirs.Add(@"E:\WorkSpace2018\FDDC2018\FDDC_announcements_round1_test_a_20180605\重大合同\dp");
        foreach (var dir in Dirs)
        {
            foreach (var filename in System.IO.Directory.GetFiles(dir))
            {
                var dp = LTPTrainingDP.AnlayzeDP(filename);
                foreach (var p in dp)
                {
                    foreach (var s in p)
                    {
                        if (s.pos == LTPTrainingNER.地名)
                        {
                            if (!Ns.Contains(s.cont))
                            {
                                Ns.Add(s.cont);
                                NsDict.WriteLine(s.cont);
                            }
                        }
                    }
                }
            }
        }
        NsDict.Close();
    }
Exemple #2
0
    /// <summary>
    /// 使用LTP方式分析实体周边词语
    /// </summary>
    public static void AnlayzeEntitySurroundWordsLTP()
    {
        var ContractPath_TRAIN = Program.DocBase + @"\FDDC_announcements_round1_train_20180518\重大合同";

        var JiaFangDP       = new LTPTrainingDP();
        var JiaFangSRL      = new LTPTrainingSRL();
        var YiFnagDP        = new LTPTrainingDP();
        var YiFnagSRL       = new LTPTrainingSRL();
        var ContractNameDP  = new LTPTrainingDP();
        var ContractNameSRL = new LTPTrainingSRL();
        var ProjectNameDP   = new LTPTrainingDP();
        var ProjectNameSRL  = new LTPTrainingSRL();

        foreach (var filename in System.IO.Directory.GetFiles(ContractPath_TRAIN + @"\html\"))
        {
            var fi = new System.IO.FileInfo(filename);
            var Id = fi.Name.Replace(".html", String.Empty);
            if (TraningDataset.GetContractById(Id).Count == 0)
            {
                continue;
            }
            var contract = TraningDataset.GetContractById(Id).First();
            var c        = new Contract();
            c.Init(filename);
            if (!string.IsNullOrEmpty(contract.JiaFang))
            {
                JiaFangDP.Training(c.Dplist, contract.JiaFang);
                JiaFangSRL.Training(c.Srllist, contract.JiaFang);
            }

            if (!string.IsNullOrEmpty(contract.YiFang))
            {
                YiFnagDP.Training(c.Dplist, contract.YiFang);
                YiFnagSRL.Training(c.Srllist, contract.YiFang);
            }

            if (!string.IsNullOrEmpty(contract.ContractName))
            {
                ContractNameDP.Training(c.Dplist, contract.ContractName);
                ContractNameSRL.Training(c.Srllist, contract.ContractName);
            }
            if (!string.IsNullOrEmpty(contract.ProjectName))
            {
                ProjectNameDP.Training(c.Dplist, contract.ProjectName);
                ProjectNameSRL.Training(c.Srllist, contract.ProjectName);
            }
        }


        Program.Training.WriteLine("甲方附近词语分析(DP):");
        JiaFangDP.WriteToLog(Program.Training);
        Program.Training.WriteLine("甲方附近词语分析(SRL):");
        JiaFangSRL.WriteToLog(Program.Training);

        Program.Training.WriteLine("乙方附近词语分析(DP):");
        YiFnagDP.WriteToLog(Program.Training);
        Program.Training.WriteLine("乙方附近词语分析(SRL):");
        YiFnagSRL.WriteToLog(Program.Training);

        Program.Training.WriteLine("合同名附近词语分析(DP):");
        ContractNameDP.WriteToLog(Program.Training);
        Program.Training.WriteLine("合同名附近词语分析(SRL):");
        ContractNameSRL.WriteToLog(Program.Training);

        Program.Training.WriteLine("工程名附近词语分析(DP):");
        ProjectNameDP.WriteToLog(Program.Training);
        Program.Training.WriteLine("工程名附近词语分析(SRL):");
        ProjectNameSRL.WriteToLog(Program.Training);
    }