ved bruk av System; ved bruk av System.Collections.Generic; ved bruk av System.Linq; ved bruk av System.Text; bruk av System.Threading.Tasks; ved bruk av PanGu.Dict; ved bruk av PanGu.Framework; ved bruk av PanGu.Match; ved bruk av PanGu.Setting; ved bruk av PanGu.HighLight; ved bruk av Lucene.Net.Analysis; bruk av System.IO; ved bruk av PanGu; ved bruk av System.Configuration;
navnerom Pangu.Helper
{ offentlig klasse PanguHelper {
privat flyktig statisk PanguHelper _instance = null; privat statisk skrivebeskyttet objekt lockHelper = nytt objekt(); private PanguHelper() { }
/// <summary> [Standard bruker pangu.xml profil under samme sti] /// </summary> /// <returns></returns> offentlig statisk PanguHelper DelHjelper { Få tak { hvis (_instance == null) { lås (lockHelper) { hvis (_instance == null) { _instance = ny PanguHelper(); streng configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
returnere _instance; } }
/// <summary> Initialiser den angitte konfigurasjonsfilen /// </summary> <param name="configFile"> pangu konfigurasjonsfil</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Få en ordklassebeskrivelse /// </summary> <param name="pos"> ordklasseoppramsing</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Switch (POS) { Saken POS. POS_UNK: returner "ukjent ordklasse;" Saken POS. POS_D_K: returner "trailing component"; Saken POS. POS_D_H: returner "foregående komponent"; Saken POS. POS_A_NZ: returner "annet egennavn"; Saken POS. POS_A_NX: returner "fremmed karakter"; Saken POS. POS_A_NR: returner "personens navn"; Saken POS. POS_D_Z: returner "status word"; Saken POS. POS_A_NT: returnere «institusjonsorgan»; Saken POS. POS_A_NS: returner "stedsnavn"; Saken POS. POS_D_Y: returner "humørord humørmorfem"; Saken POS. POS_D_X: returnere "ikke-morfemisk ord"; Saken POS. POS_D_W: returner "tegnsetting"; Saken POS. POS_D_T: returner "word of time"; Saken POS. POS_D_S: returner "stedsord"; Saken POS. POS_D_V: returner "verbmorfem"; Saken POS. POS_D_U: returner "partikkelpartikkelmorfem"; Saken POS. POS_D_R: returner "pronomenpronomenmorfem"; Saken POS. POS_A_Q: returnere "quantifier quantifier quantifier morphem"; Saken POS. POS_D_P: returner "preposisjon"; Saken POS. POS_D_MQ: returner "kvantifikator"; Saken POS. POS_A_M: returner "tall, tall, tall"; Saken POS. POS_D_O: returnerer "onomatopoeia"; Saken POS. POS_D_N: returner "substantivmorfem"; Saken POS. POS_D_F: returner "azimutord azimut-morfem"; Saken POS. POS_D_E: returner "interjeksjonsmorfem"; Saken POS. POS_D_L: returner "idiom"; Saken POS. POS_D_I: returner "idiom"; Saken POS. POS_D_D: returner "adverb adverb morfem"; Saken POS. POS_D_C: returnere "konjunktiv konjunksjonsmorfem"; Saken POS. POS_D_B: returnere "for å skille ord for å skille morfemer"; Saken POS. POS_D_A: returner "adjektivmorfem"; } returner "ukjent ordklasse"; }
/// <summary> Få partisippet [Original Wordinfo] /// </summary> <param name="innhold"> innholdet i ordet som skal separeres</param> <param name="matchOptions"> bruk matchingsalternativene</param> <param name="matchParameter"> bruk match-parameteren</param> /// <returns></returns> offentlig ICollection<WordInfo> GetSegmentWords(strenginnhold, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = nytt segment(); IColleksjonsord<WordInfo> = segment. DoSegment(innhold, matchOptions, matchParameter); returner ord; }
/// <summary> Få partisipp /// </summary> <param name="innhold"> innholdet i ordet som skal separeres</param> <param name="matchOptions"> Match-alternativer brukes, ikke som standard</param> <param name="matchParameter" > bruker matchende parameter, ikke som standard</param> offentlig liste<string> GetSplitWords (strenginnhold, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = nytt segment(); IColleksjonsord<WordInfo> = segment. DoSegment(innhold,matchOptions,matchParameter); Listeliste<string> = ny Liste<string>(); foreach (WordInfo ord i ord) { liste. Add(word. Word); } returliste; }
/// <summary> Få partisippet til den angitte ordfrekvensen /// </summary> <param name="innhold"> innholdet i ordet som skal separeres</param> <param navn="frekvens"> ordfrekvens</param> <param name="matchOptions"> Match-alternativer brukes, ikke som standard</param> <param name="matchParameter" > bruker matchende parameter, ikke som standard</param> /// <returns></returns> offentlig liste<string> GetSplitWordsByFrequency(strenginnhold, dobbel frekvens, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = nytt segment(); IColleksjonsord<WordInfo> = segment. DoSegment(innhold, matchOptions, matchParameter);
Listeliste<string> = ny Liste<string>(); foreach (WordInfo ord i ord) { hvis (frekvens == ord. Frekvens) { liste. Add(word. Word); } } returliste; }
/// <summary> Få et partisipp med en bestemt vekt /// </summary> <param name="innhold"> innholdet i ordet som skal separeres</param> <param navn="rang"> vekt</param> <param name="matchOptions"> Match-alternativer brukes, ikke som standard</param> <param name="matchParameter" > bruker matchende parameter, ikke som standard</param> /// <returns></returns> offentlig liste<string> GetSplitWordsByRank(strenginnhold, int-rangering, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = nytt segment(); IColleksjonsord<WordInfo> = segment. DoSegment(innhold, matchOptions, matchParameter);
Listeliste<string> = ny Liste<string>(); foreach (WordInfo ord i ord) { hvis (rang == ord. Rang) { liste. Add(word. Word); } } returliste; }
/// <summary> Høydepunkter /// </summary> <param name="keyword"> strengen for å fremheve</param> <param name="content">content</param> <param name="fragmentSize"> antall tegn for hvert oppsummeringsfelt</param> <returns>Fremhevet innhold</returns> offentlig statisk streng HighLight (strengnøkkelord, strenginnhold, int fragmentSize) { Lag en HTML-kode med parameteren som fremhever søkeordet SimpleHTMLFormatter simpleHTMLFormatter = ny SimpleHTMLFormatter("<font color='red'>", "</font>"); Lag markering, skriv inn HTML-kode og Pangu-objekt Semgent Highlighter høyere = ny Highlighter(simpleHTMLFormatter, ny Segment()); Sett antall tegn for hvert sammendragsfelt høyere. FragmentSize = FragmentSize; streng highlightStr = høyere. GetBestFragment (nøkkelord, innhold);
hvis (streng. IsNullOrEmpty(highlightStr)) { returner innhold; } return highlightStr; }
}
}
|