folosind Sistem; folosind System.Collections.Generic; folosind System.Linq; folosind System.Text; folosind System.Threading.Tasks; folosind PanGu.Dict; folosind PanGu.Framework; folosind PanGu.Match; folosind PanGu.Setting; folosind PanGu.HighLight; folosind Lucene.Net.Analysis; folosind System.IO; folosind PanGu; folosind System.Configuration;
spațiu de nume Pangu.Helper
{ clasa publică PanguHelper {
PanguHelper static volatil privat _instance = nul; blocare privată statică a obiectului doar readonly Helper = obiect nou(); privat PanguHelper() { }
/// <summary> [Implicit folosește profilul pangu.xml pe aceeași cale] /// </summary> /// <returns></returns> public static PanguHelper ShareHelper { Ia-ți { if (_instance == null) { Încuietoare (Încuietor) { if (_instance == null) { _instance = noul PanguHelper(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(fișierConfig); } } } }
întoarcerea _instance; } }
/// <summary> Inițializează fișierul de configurare specificat /// </summary> <param name="configFile"> fișier de configurare pangu</param> public void Use(string configFile) { PanGu.Segment.Init(fișierConfig); }
/// <summary> Primește o descriere a părții de vorbire /// </summary> <param name="pos"> enumerarea părților de vorbire</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Comutator (POS) { Cazul POS. POS_UNK: returnează "necunoscută parte a discursului;" Cazul POS. POS_D_K: returnează "componenta de urmărire"; Cazul POS. POS_D_H: returnează "componenta precedentă"; Cazul POS. POS_A_NZ: returnează "alt nume propriu"; Cazul POS. POS_A_NX: returnează "caracter străin"; Cazul POS. POS_A_NR: returnează "numele persoanei"; Cazul POS. POS_D_Z: returnează "status word"; Cazul POS. POS_A_NT: returnarea "corpului instituțiilor"; Cazul POS. POS_A_NS: returnează "numele locului"; Cazul POS. POS_D_Y: returnează "cuvânt dispoziție morfemă"; Cazul POS. POS_D_X: returnează "cuvânt nemorfemic"; Cazul POS. POS_D_W: returnează "punctuație"; Cazul POS. POS_D_T: returnează "cuvântul timpului"; Cazul POS. POS_D_S: returnează "plasează cuvântul"; Cazul POS. POS_D_V: returnează "verb morfem"; Cazul POS. POS_D_U: returnează "morfem particulă de particule"; Cazul POS. POS_D_R: returnează "pronume morfem"; Cazul POS. POS_A_Q: returnează "cuantificator morfemă"; Cazul POS. POS_D_P: returnează "prepoziția"; Cazul POS. POS_D_MQ: returnează "cuantificator"; Cazul POS. POS_A_M: returnează "cifră, cifră, cifră"; Cazul POS. POS_D_O: returnează "onomatopee"; Cazul POS. POS_D_N: returnează "substantiv morfem"; Cazul POS. POS_D_F: returnează "azimut word azimuth morphem"; Cazul POS. POS_D_E: returnează "morfem de interjecție"; Cazul POS. POS_D_L: returnează "idiom"; Cazul POS. POS_D_I: returnează "idiom"; Cazul POS. POS_D_D: returnează "adverb adverb morpheme"; Cazul POS. POS_D_C: returnează "morfem conjunctiv de conjuncție"; Cazul POS. POS_D_B: returnează "a distinge cuvinte pentru a distinge morfeme"; Cazul POS. POS_D_A: returnează "morfem adjectiv"; } returnează "voce necunoscută"; }
/// <summary> Obține participiul [Original Wordinfo] /// </summary> <param name="content"> conținutul cuvântului ce urmează să fie separat</param> <param name="matchOptions"> folosește opțiunile de potrivire</param> <param name="matchParameter"> folosește parametrul de potrivire</param> /// <returns></returns> public<WordInfo> ICollection GetSegmentWords(string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = segment nou (); Cuvinte de colicție<WordInfo> = segment. DoSegment (conținut, matchOptions, matchParameter); răspunde la cuvinte; }
/// <summary> Obține participii /// </summary> <param name="content"> conținutul cuvântului ce urmează să fie separat</param> <param name="matchOptions"> Opțiunile de potrivire sunt folosite, nu implicit</param> <param name="matchParameter" > folosește parametrul corespunzător, nu implicit</param> public<string> List GetSplitWords(string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = segment nou (); Cuvinte de colicție<WordInfo> = segment. DoSegment(conținut, matchOptions, matchParameter); <string> List list = new List<string>(); foreach (WordInfo cuvânt în cuvinte) { listă. Adaugă (cuvântul. Cuvânt); } lista de returnări; }
/// <summary> Obține participiul frecvenței cuvintelor specificate /// </summary> <param name="content"> conținutul cuvântului ce urmează să fie separat</param> <param name="frecvență"> frecvența cuvintelor</param> <param name="matchOptions"> Opțiunile de potrivire sunt folosite, nu implicit</param> <param name="matchParameter" > folosește parametrul corespunzător, nu implicit</param> /// <returns></returns> Public List<string> GetSplitWordsByFrequency(string content, double frecency, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = segment nou (); Cuvinte de colicție<WordInfo> = segment. DoSegment (conținut, matchOptions, matchParameter);
<string> List list = new List<string>(); foreach (WordInfo cuvânt în cuvinte) { if (frecvență == cuvânt. Frecvență) { listă. Adaugă (cuvântul. Cuvânt); } } lista de returnări; }
/// <summary> Obține un participiu cu o greutate specificată /// </summary> <param name="content"> conținutul cuvântului ce urmează să fie separat</param> <param name="rank"> greutate</param> <param name="matchOptions"> Opțiunile de potrivire sunt folosite, nu implicit</param> <param name="matchParameter" > folosește parametrul corespunzător, nu implicit</param> /// <returns></returns> Public List<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = segment nou (); Cuvinte de colicție<WordInfo> = segment. DoSegment (conținut, matchOptions, matchParameter);
<string> List list = new List<string>(); foreach (WordInfo cuvânt în cuvinte) { dacă (rang == cuvânt. Rang) { listă. Adaugă (cuvântul. Cuvânt); } } lista de returnări; }
/// <summary> Punct de referință /// </summary> <param name="cuvânt-cheie"> șirul pentru evidențiat</param> <param name="content">content</param> <param name="fragmentSize"> numărul de caractere pentru fiecare câmp de rezumat</param> <returns>Conținut evidențiat</returns> șirul static public HighLight(cuvântul-cheie string, conținut string, int fragmentSize) { Creează un cod HTML cu parametrul care evidențiază termenul de căutare SimpleHTMLFormatter simpleHTMLFormatter = noul SimpleHTMLFormatter("<font color='red'>", "</font>"); Creează evidențiere, introdu codul HTML și obiectul Pangu Semgent Highter marker = highlighter nou(simpleHTMLFormatter, segment nou()); Setează numărul de caractere pentru fiecare câmp rezumat Mai înalt. DimensiuneaFragmentului = DimensiuneaFragmentului; coarda highlightStr = highter. GetBestFragment (cuvânt cheie, conținut);
dacă (string. IsNullOrEmpty(highlightStr)) { returnează conținutul; } reveniți la evidențăStr; }
}
}
|