käyttämällä Systemiä; käyttäen System.Collections.Generic-tiedostoa; käyttäen System.Linqia; käyttäen System.Textiä; käyttäen System.Threading.Tasksia; käyttäen PanGu.Dictiä; käyttäen PanGu.Frameworkia; käyttäen PanGu.Matchia; käyttäen PanGu.Settingiä; käyttäen PanGu.HighLightia; käyttäen Lucene.Net.Analysisia; käyttäen System.IO; käyttäen PanGua; käyttäen System.Configurationia;
nimiavaruus Pangu.Helper
{ julkinen luokka PanguHelper {
yksityinen haihtuva staattinen PanguHelper _instance = nolla; yksityinen staattinen lukumääräinen objekti lockHelper = uusi objekti(); yksityinen PanguHelper() { }
/// <summary> [Oletuksena käytetään pangu.xml profiilia samalla polulla] /// </summary> /// <returns></returns> julkinen staattinen PanguHelper ShareHelper { Tule { jos (_instance == null) { lukko (lockHelper) { jos (_instance == null) { _instance = uusi PanguHelper(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
palaa _instance; } }
/// <summary> Alustoi määritetty konfiguraatiotiedosto /// </summary> <param name="configFile"> pangu configuration file</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Hanki sanakuvauksen /// </summary> <param name="pos"> sanaluettelo</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Switch (POS) { Case POS. POS_UNK: palauta "tuntematon puheosa;" Case POS. POS_D_K: palauta "jälkikomponentti"; Case POS. POS_D_H: palauta "edeltävä komponentti"; Case POS. POS_A_NZ: palauta "muu erisnimi"; Case POS. POS_A_NX: palauta "vieras merkki"; Case POS. POS_A_NR: palauttaa "henkilön nimi"; Case POS. POS_D_Z: palauta "status word"; Case POS. POS_A_NT: palautetaan "instituutioiden kokonaisuus"; Case POS. POS_A_NS: palauta "paikannimi"; Case POS. POS_D_Y: return "mielialasana mieliala morfeemi"; Case POS. POS_D_X: palauta "ei-morfeeminen sana"; Case POS. POS_D_W: palauta "välimerkit"; Case POS. POS_D_T: palauta "ajan sana"; Case POS. POS_D_S: palauta "paikkasana"; Case POS. POS_D_V: return "verbimorfeemi"; Case POS. POS_D_U: palauta "hiukkasen hiukkasmorfeemi"; Case POS. POS_D_R: palauta "pronominipronominimorfeemi"; Case POS. POS_A_Q: palauta "quantifier quantifier morpheme"; Case POS. POS_D_P: return "prepositio"; Case POS. POS_D_MQ: palauta "kvantifioija"; Case POS. POS_A_M: palauta "numero, numero, numero"; Case POS. POS_D_O: palaa "onomatopoeia"; Case POS. POS_D_N: return "substantiivi morfeemi"; Case POS. POS_D_F: return "azimuth word azimuth morpheme"; Case POS. POS_D_E: return "interjektiomorfeemi"; Case POS. POS_D_L: return "idiom"; Case POS. POS_D_I: palaa "idiomi"; Case POS. POS_D_D: return "adverb adverb morpheme"; Case POS. POS_D_C: return "konjunktiivinen konjunktiomorfeemi"; Case POS. POS_D_B: return "erotella sanoja morfeemien erottamiseksi"; Case POS. POS_D_A: return "adjektiivimorfeemi"; } palauttaa "tuntematon sanakohta"; }
/// <summary> Hanki partisiippi [Alkuperäinen sanatieto] /// </summary> <param name="content"> erotettavan sanan sisältö</param> <param name="matchOptions"> käytä matching optionsia</param> <param name="matchParameter"> käytä match-parametria</param> /// <returns></returns> public ICollection<WordInfo> GetSegmentWords(string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmenttisegmentti = uusi segment(); ICollection-sanat<WordInfo> = segmentti. DoSegment(content, matchOptions, matchParameter); vastata sanoja; }
/// <summary> Hanki partisiipit /// </summary> <param name="content"> erotettavan sanan sisältö</param> <param name="matchOptions"> Match-vaihtoehtoja käytetään, ei oletuksena</param> <param name="matchParameter" > käyttää vastaavaa parametria, ei oletuksena</param> julkinen<string> lista GetSplitWords(merkkijonosisältö, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmenttisegmentti = uusi segment(); ICollection-sanat<WordInfo> = segmentti. DoSegment(content, matchOptions, matchParameter); <string> Lista = uusi List<string>(); foreach (WordInfo sana sanoina) { lista. Add(word. Word); } paluulista; }
/// <summary> Hanki määritellyn sanatiheyden partisiippi /// </summary> <param name="content"> erotettavan sanan sisältö</param> <param name="frequency"> sanan taajuus</param> <param name="matchOptions"> Match-vaihtoehtoja käytetään, ei oletuksena</param> <param name="matchParameter" > käyttää vastaavaa parametria, ei oletuksena</param> /// <returns></returns> julkinen<string> lista GetSplitWordsByFrequency(merkkijonosisältö, kaksinkertainen taajuus, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmenttisegmentti = uusi segment(); ICollection-sanat<WordInfo> = segmentti. DoSegment(content, matchOptions, matchParameter);
<string> Lista = uusi List<string>(); foreach (WordInfo sana sanoina) { jos (taajuus == sana. Taajuus) { lista. Add(word. Word); } } paluulista; }
/// <summary> Hanki partisiippi, jonka paino on määritelty /// </summary> <param name="content"> erotettavan sanan sisältö</param> <param name="rank"> paino</param> <param name="matchOptions"> Match-vaihtoehtoja käytetään, ei oletuksena</param> <param name="matchParameter" > käyttää vastaavaa parametria, ei oletuksena</param> /// <returns></returns> julkinen lista<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmenttisegmentti = uusi segment(); ICollection-sanat<WordInfo> = segmentti. DoSegment(content, matchOptions, matchParameter);
<string> Lista = uusi List<string>(); foreach (WordInfo sana sanoina) { jos (rank == sana. Arvo) { lista. Add(word. Word); } } paluulista; }
/// <summary> Kohokohdat /// </summary> <param name="avainsana"> merkkijono korostettavaksi</param> <param name="content">content</param> <param name="fragmentSize"> kunkin yhteenvetokentän merkkien määrä</param> <returns>Korostettu sisältö</returns> julkinen staattinen merkkijono HighLight (merkkijonon avainsana, merkkijonon sisältö, int fragmentSize) { Luo HTML-koodi, jossa parametri korostaa hakutermiä SimpleHTMLFormatter simpleHTMLFormatter = uusi SimpleHTMLFormatter ("<font color='red'>", "</font>"); Luo korostus, syötä HTML-koodi ja Pangu-objekti Semgent Highlighter highter = uusi Highlighter (simpleHTMLFormatter, new Segment()); Aseta merkkimäärä kullekin yhteenvetokentälle korkeampi. FragmentSize = fragmentSize; kielen korostusStr = korkeampi. GetBestFragment (avainsana, sisältö);
jos (merkkijono. IsNullOrEmpty(korostusVoima)) { palautussisältöä; } palaa highlightStr; }
}
}
|