naudojantis Sistema; naudojant System.Collections.Generic; naudojant System.Linq; naudojant System.Text; naudojant System.Threading.Tasks; naudojant PanGu.Dict; naudojant PanGu.Framework; naudojant PanGu.Match; naudojant PanGu.Setting; naudojant PanGu.HighLight; naudojant Lucene.Net.Analysis; naudojant System.IO; naudojant PanGu; naudojant System.Configuration;
vardų sritis Pangu.Helper
{ viešoji klasė PanguHelper {
privatus nepastovus statinis PanguHelper _instance = nulinis; privatus statinis tik skaitomas objektas lockHelper = naujas objektas(); privatus PanguHelper() { }
/// <summary> [Numatytasis naudoja pangu.xml profilį tuo pačiu keliu] /// </summary> /// <returns></returns> viešas statinis PanguHelper ShareHelper { gauti { if (_instance == null) { užraktas (lockHelper) { if (_instance == null) { _instance = naujas PanguHelper(); eilutė configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
grąžinti _instance; } }
/// <summary> Inicijuoti nurodytą konfigūracijos failą /// </summary> <param name="configFile"> pangu konfigūracijos failas</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Kalbos dalies aprašo gavimas /// </summary> <param name="pos"> kalbos išvardijimo dalis</param> /// <returns></returns> viešoji eilutė GetPosDescrip{filter}t(POS pos) { Jungiklis (POS) { atvejis POS. POS_UNK: grąžinti "nežinoma kalbos dalis;" atvejis POS. POS_D_K: grąžinti "galinis komponentas"; atvejis POS. POS_D_H: grąžinti "ankstesnis komponentas"; atvejis POS. POS_A_NZ: grąžinti "kitas tikrasis vardas"; atvejis POS. POS_A_NX: grąžinti "svetimą charakterį"; atvejis POS. POS_A_NR: grąžinti "asmens vardą"; atvejis POS. POS_D_Z: grąžinti "būsenos žodis"; atvejis POS. POS_A_NT: grąžinti "institucijų korpusas"; atvejis POS. POS_A_NS: grąžinti "vietovardis"; atvejis POS. POS_D_Y: return "nuotaikos žodis nuotaikos morfema"; atvejis POS. POS_D_X: grąžinti "nemorfeminis žodis"; atvejis POS. POS_D_W: grąžinti "skyrybos ženklą"; atvejis POS. POS_D_T: grąžinti "laiko žodį"; atvejis POS. POS_D_S: grąžinti "vietos žodis"; atvejis POS. POS_D_V: grąžinti "veiksmažodžio morfema"; atvejis POS. POS_D_U: grąžinti "dalelių dalelių morfema"; atvejis POS. POS_D_R: grąžinti "įvardžio įvardis morfema"; atvejis POS. POS_A_Q: grąžinkite "kiekybinio matuoklio morfema"; atvejis POS. POS_D_P: grąžinti "prielinksnis"; atvejis POS. POS_D_MQ: grąžinti "kiekybinis rodiklis"; atvejis POS. POS_A_M: grąžinti "skaitmuo, skaičiumi, skaičiumi"; atvejis POS. POS_D_O: grąžinti "onomatopeja"; atvejis POS. POS_D_N: grąžinti "daiktavardis morfema"; atvejis POS. POS_D_F: grąžinti "azimuto žodis azimuto morfema"; atvejis POS. POS_D_E: grąžinti "interjekcijos morfema"; atvejis POS. POS_D_L: grąžinti "idioma"; atvejis POS. POS_D_I: grąžinti "idioma"; atvejis POS. POS_D_D: grąžinti "prieveiksmio prieveiksmio morfema"; atvejis POS. POS_D_C: grąžinti "konjunktyvinė jungties morfema"; atvejis POS. POS_D_B: grįžti "atskirti žodžius atskirti morfemas"; atvejis POS. POS_D_A: grąžinti "būdvardis morfema"; } grąžinti "nežinomą kalbos dalį"; }
/// <summary> Gauti dalyvį [Original Wordinfo] /// </summary> <param name="content"> žodžio, kurį reikia atskirti, turinys</param> <param name="matchOptions"> naudokite atitikimo parinktis</param> <param name="matchParameter"> naudokite atitikties parametrą</param> /// <returns></returns> public ICollection<WordInfo> GetSegmentWords(string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmentas = naujas segmentas(); ICollection<WordInfo> žodžiai = segmentas. DoSegment(turinys, matchOptions, matchParameter); grąžinti žodžius; }
/// <summary> Gauti dalyvius /// </summary> <param name="content"> žodžio, kurį reikia atskirti, turinys</param> <param name="matchOptions"> Atitikties parinktys naudojamos, o ne pagal numatytuosius nustatymus</param> <param name="matchParameter" > naudoti atitinkantį parametrą, o ne pagal numatytuosius nustatymus</param> viešasis sąrašas<string> GetSplitWords(eilutės turinys, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmentas = naujas segmentas(); ICollection<WordInfo> žodžiai = segmentas. DoSegment(turinys,matchOptions,matchParameter); List<string> list = naujas List<string>(); foreach (WordInfo žodis žodžiais) { sąrašą. Add(žodis. Žodis); } grąžinimo sąrašas; }
/// <summary> Gaukite nurodyto žodžio dažnio dalyvį /// </summary> <param name="content"> žodžio, kurį reikia atskirti, turinys</param> <param name="frequency"> žodžio dažnis</param> <param name="matchOptions"> Atitikties parinktys naudojamos, o ne pagal numatytuosius nustatymus</param> <param name="matchParameter" > naudoti atitinkantį parametrą, o ne pagal numatytuosius nustatymus</param> /// <returns></returns> viešasis sąrašas<string> GetSplitWordsByFrequency(eilutės turinys, dvigubas dažnis, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmentas = naujas segmentas(); ICollection<WordInfo> žodžiai = segmentas. DoSegment(turinys, matchOptions, matchParameter);
List<string> list = naujas List<string>(); foreach (WordInfo žodis žodžiais) { if (dažnis == žodis. Dažnis) { sąrašą. Add(žodis. Žodis); } } grąžinimo sąrašas; }
/// <summary> Gaukite nurodyto svorio dalyvį /// </summary> <param name="content"> žodžio, kurį reikia atskirti, turinys</param> <param name="rank"> svoris</param> <param name="matchOptions"> Atitikties parinktys naudojamos, o ne pagal numatytuosius nustatymus</param> <param name="matchParameter" > naudoti atitinkantį parametrą, o ne pagal numatytuosius nustatymus</param> /// <returns></returns> viešasis sąrašas<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmentas = naujas segmentas(); ICollection<WordInfo> žodžiai = segmentas. DoSegment(turinys, matchOptions, matchParameter);
List<string> list = naujas List<string>(); foreach (WordInfo žodis žodžiais) { if (rangas == žodis. rangas) { sąrašą. Add(žodis. Žodis); } } grąžinimo sąrašas; }
/// <summary> Paryškinti /// </summary> <param name="keyword"> eilutę, kurią norite paryškinti</param> <param name="content">content</param> <param name="fragmentSize"> kiekvieno suvestinės lauko simbolių skaičius</param> <returns>Paryškintas turinys</returns> viešoji statinė eilutė HighLight(eilutės raktažodis, eilutės turinys, int fragmentSize) { Sukurkite HTML kodą su parametru, paryškinančiu paieškos terminą SimpleHTMLFormatter simpleHTMLFormatter = naujas SimpleHTMLFormatter("<font color='red'>", "</font>""); Sukurkite paryškinimą, įveskite HTML kodą ir Pangu objektą Semgent Highlighter highter = new Highlighter(simpleHTMLFormatter, new Segment()); Kiekvieno suvestinės lauko simbolių skaičiaus nustatymas aukštesnis. FragmentSize = fragmentSize; string highlightStr = highter. GetBestFragment(raktinis žodis, turinys);
if (eilutė. IsNullOrEmpty(highlightStr)) { grąžinti turinį; } grąžinti paryškinimąStr; }
}
}
|