kasutades süsteemi; kasutades System.Collections.Generic; kasutades System.Linq'i; kasutades System.Texti; kasutades System.Threading.Tasks; kasutades PanGu.Dict; kasutades PanGu.Frameworki; kasutades PanGu.Matchi; kasutades PanGu.Settingut; kasutades PanGu.HighLight; kasutades Lucene.Net.Analysis'i; kasutades System.IO; kasutades PanGu; kasutades System.Configurationi;
nimeruum Pangu.Abiline
{ avalik klass PanguHelper {
privaatne volatiilne staatiline PanguHelper _instance = null; privaatne staatiline ainult loetav objekt lockHelper = uus objekt(); era PanguHelper() { }
/// <summary> [Vaikimisi kasutab pangu.xml profiili sama tee all] /// </summary> /// <returns></returns> avalik staatiline PanguHelper ShareHelper { Mine { if (_instance == null) { lukk (luku abiline) { if (_instance == null) { _instance = uus PanguHelper(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + """; if (configFile != "") { _instance. Use(configFile); } } } }
Tagasi _instance; } }
/// <summary> Initsialiseeri määratud konfiguratsioonifail /// </summary> <param name="configFile"> pangu configuration file</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Hangi kõneosa kirjeldus /// </summary> <param name="pos"> sõnaosade loetelu</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Lüliti (asend) { Case POS. POS_UNK: tagasta "tundmatu kõneosa;" Case POS. POS_D_K: tagastada "järelkomponent"; Case POS. POS_D_H: tagasta "eelnev komponent"; Case POS. POS_A_NZ: tagasta "teine pärisnimi"; Case POS. POS_A_NX: tagasta "võõras tegelane"; Case POS. POS_A_NR: tagasta "isiku nimi"; Case POS. POS_D_Z: tagasta "staatuse sõna"; Case POS. POS_A_NT: tagastada "institutsioonide kogu"; Case POS. POS_A_NS: tagasta "kohanimi"; Case POS. POS_D_Y: return "meeleolu sõna meeleolu morfeem"; Case POS. POS_D_X: tagasta "mittemorfeemiline sõna"; Case POS. POS_D_W: tagasta "kirjavahemärk"; Case POS. POS_D_T: tagasta "aja sõna"; Case POS. POS_D_S: tagasta "kohasõna"; Case POS. POS_D_V: return "verbi morfeem"; Case POS. POS_D_U: tagasta "osakese osakese morfeem"; Case POS. POS_D_R: tagasta "asesõna morfeem"; Case POS. POS_A_Q: tagasta "kvantifikaatori morfeem"; Case POS. POS_D_P: tagasta "eessõna"; Case POS. POS_D_MQ: tagasta "kvantifikeerija"; Case POS. POS_A_M: tagasta "number, number, number"; Case POS. POS_D_O: tagasi "onomatopoeia"; Case POS. POS_D_N: tagasta "nimisõna morfeem"; Case POS. POS_D_F: tagasta "asimuudi sõna asimuudmorfeem"; Case POS. POS_D_E: tagasta "vaheldusmorfeem"; Case POS. POS_D_L: tagasta "idiom"; Case POS. POS_D_I: tagastada "idiom"; Case POS. POS_D_D: tagasta "määrsõna määrsõna morfeem"; Case POS. POS_D_C: tagasta "konjunktiivne konjunktsioonmorfeem"; Case POS. POS_D_B: return "et eristada sõnu, et eristada morfeeme"; Case POS. POS_D_A: tagasta "omadussõna morfeem"; } tagasta "tundmatu kõneosa"; }
/// <summary> Hangi partitsiip [Originaalne sõnainfo] /// </summary> <param name="content"> eraldatava sõna sisu</param> <param name="matchOptions"> kasuta sobitamise valikuid</param> <param name="matchParameter"> kasuta match parameetrit</param> /// <returns></returns> public ICollection<WordInfo> GetSegmentWords(string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmendi segment = uus segment(); ICollection<WordInfo> sõnad = segment. DoSegment(content, matchOptions, matchParameter); vastavad sõnad; }
/// <summary> Võta partitsipid /// </summary> <param name="content"> eraldatava sõna sisu</param> <param name="matchOptions"> Kasutatakse sobitusvalikuid, mitte vaikimisi</param> <param name="matchParameter" > kasutada sobivat parameetrit, mitte vaikimisi</param> avalik nimekiri<string> GetSplitWords (string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmendi segment = uus segment(); ICollection<WordInfo> sõnad = segment. DoSegment(content, matchOptions, matchParameter); List<string> list = uus List<string>(); foreach (WordInfo sõna sõnades) { nimekirjas. Lisa(sõna. Word); } tagastusnimekiri; }
/// <summary> Hangi määratud sõnasageduse osasõna osasõna /// </summary> <param name="content"> eraldatava sõna sisu</param> <param name="sagedus"> sõna sagedus</param> <param name="matchOptions"> Kasutatakse sobitusvalikuid, mitte vaikimisi</param> <param name="matchParameter" > kasutada sobivat parameetrit, mitte vaikimisi</param> /// <returns></returns> avalik nimekiri<string> GetSplitWordsByFrequency(string content, double frequency, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmendi segment = uus segment(); ICollection<WordInfo> sõnad = segment. DoSegment(content, matchOptions, matchParameter);
List<string> list = uus List<string>(); foreach (WordInfo sõna sõnades) { kui (sagedus == sõna. Sagedus) { nimekirjas. Lisa(sõna. Word); } } tagastusnimekiri; }
/// <summary> Võta partitsiip kindla kaaluga /// </summary> <param name="content"> eraldatava sõna sisu</param> <param name="aste"> kaal</param> <param name="matchOptions"> Kasutatakse sobitusvalikuid, mitte vaikimisi</param> <param name="matchParameter" > kasutada sobivat parameetrit, mitte vaikimisi</param> /// <returns></returns> avalik nimekiri<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmendi segment = uus segment(); ICollection<WordInfo> sõnad = segment. DoSegment(content, matchOptions, matchParameter);
List<string> list = uus List<string>(); foreach (WordInfo sõna sõnades) { kui (rank == sõna. Ametikoht) { nimekirjas. Lisa(sõna. Word); } } tagastusnimekiri; }
/// <summary> Tipphetk /// </summary> <param name="märksõna"> et esile tõsta string</param> <param name="content">content</param> <param name="fragmentSize"> iga kokkuvõtva välja tähemärkide arv</param> <returns>Esiletõstetud sisu</returns> public static string HighLight (string märksõna, string content, int fragmentSize) { Loo HTML-kood, mille parameeter toob esile otsingutermini SimpleHTMLFormatter simpleHTMLFormatter = uus SimpleHTMLFormatter ("<font color='punane'>", "</font>"); Loo esiletõstmine, sisesta HTML-kood ja Pangu objekt Semgent Highlighter highter = uus Highlighter (simpleHTMLFormatter, new Segment()); Määra iga kokkuvõtva välja tähemärkide arv kõrgem. FragmentSize = fragmentSize; string highlightStr = highter. GetBestFragment (märksõna, sisu);
if (string. IsNullOrEmpty(highlightStr)) { tagasta sisu; } return highlightStr; }
}
}
|