z uporabo System; z uporabo System.Collections.Generic; z uporabo System.Linq; z uporabo System.Text; uporaba System.Threading.Tasks; uporablja PanGu.Dict; z uporabo PanGu.Framework; uporaba PanGu.Match; uporaba PanGu.Setting; uporaba PanGu.HighLight; z uporabo Lucene.Net.Analysis; z uporabo System.IO; uporaba PanGu; z uporabo System.Configuration;
imenski prostor Pangu.Helper
{ javni razred PanguHelper {
zasebni volatilni statični PanguHelper _instance = null; zasebni statični objekt za branje lockHelper = nov objekt(); private PanguHelper() { }
/// <summary> [Privzeto uporablja pangu.xml profil pod isto potjo] /// </summary> /// <returns></returns> javni statični PanguHelper ShareHelper { Dobi { če (_instance == ničl) { lock (lockHelper) { če (_instance == ničl) { _instance = novi PanguHelper(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
vrnitev _instance; } }
/// <summary> Inicializiraj določeno konfiguracijsko datoteko /// </summary> <param name="configFile"> konfiguracijska datoteka pangu</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Pridobite opis besednega dela /// </summary> <ime parameta="pos"> enumeracija vrst govora</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Stikalo (pos) { Primer POS. POS_UNK: vrni "neznan del govora;" Primer POS. POS_D_K: vrni "trailing component"; Primer POS. POS_D_H: vrni "predhodno komponento"; Primer POS. POS_A_NZ: vrni "drugo lastno ime"; Primer POS. POS_A_NX: vrni "tuji znak"; Primer POS. POS_A_NR: vrni "ime osebe"; Primer POS. POS_D_Z: vrni "statusno besedo"; Primer POS. POS_A_NT: nazaj "telo institucij"; Primer POS. POS_A_NS: vrni "ime kraja"; Primer POS. POS_D_Y: vrni "mood word mood mood morphem"; Primer POS. POS_D_X: vrni "nemorfemična beseda"; Primer POS. POS_D_W: vrni "ločila"; Primer POS. POS_D_T: vrnitev "besede časa"; Primer POS. POS_D_S: vrni "mesto besede"; Primer POS. POS_D_V: vrni "glagolski morfem"; Primer POS. POS_D_U: vrni "delčni delčni morfem"; Primer POS. POS_D_R: vrni "morfem zaimka in zaimka"; Primer POS. POS_A_Q: vrni "kvantifikatorski kvantifikatorski morfem"; Primer POS. POS_D_P: vrni "predlog"; Primer POS. POS_D_MQ: vrni "kvantifikator"; Primer POS. POS_A_M: vrni "številka, številka, številka"; Primer POS. POS_D_O: vrnitev "onomatopeje"; Primer POS. POS_D_N: vrni "samostalniški morfem"; Primer POS. POS_D_F: vrni "azimutni azimutni morfem besede"; Primer POS. POS_D_E: vrni "morfem z interjekcijo"; Primer POS. POS_D_L: vrni "idiom"; Primer POS. POS_D_I: vrni "idiom"; Primer POS. POS_D_D: vrni "prislovni prislovni morfem"; Primer POS. POS_D_C: vrni "konjunktivni konjunktivni morfem"; Primer POS. POS_D_B: return "za razlikovanje besed za razlikovanje morfemov"; Primer POS. POS_D_A: vrni "pridevniški morfem"; } nazaj "neznan del besede"; }
/// <summary> Pridobite deležnik [Original Wordinfo] /// </summary> <ime parameta="vsebina"> vsebina besede, ki jo je treba ločiti</param> <ime parametra="matchOptions"> uporabi možnosti ujemanja</param> <parameter name="matchParameter"> uporabite parameter match</param> /// <returns></returns> public ICollection<WordInfo> GetSegmentWords(vsebina nizov, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = nov Segment(); ICollection<WordInfo> words = segment. DoSegment(vsebina, matchOptions, matchParameter); nazaj besede; }
/// <summary> Vzemi participe /// </summary> <ime parameta="vsebina"> vsebina besede, ki jo je treba ločiti</param> <ime parametra="matchOptions"> Možnosti ujemanja se uporabljajo, ne privzeto</param> <parameter name="matchParameter" > uporabi parameter ujemanja, ne privzeto</param> javni seznam<string> GetSplitWords(vsebina stringa, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = nov Segment(); ICollection<WordInfo> words = segment. DoSegment(content,matchOptions,matchParameter); <string> List list = nov List<string>(); foreach (beseda WordInfo v besedah) { seznam. Dodaj (besedo. Word); } seznam vračil; }
/// <summary> Dobimo deležnik določene frekvence besede /// </summary> <ime parameta="vsebina"> vsebina besede, ki jo je treba ločiti</param> <ime parametra="frekvenca"> pogostost besed</param> <ime parametra="matchOptions"> Možnosti ujemanja se uporabljajo, ne privzeto</param> <parameter name="matchParameter" > uporabi parameter ujemanja, ne privzeto</param> /// <returns></returns> javni seznam<string> GetSplitWordsByFrequency (vsebina nizov, dvojna frekvenca, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = nov Segment(); ICollection<WordInfo> words = segment. DoSegment(vsebina, matchOptions, matchParameter);
<string> List list = nov List<string>(); foreach (beseda WordInfo v besedah) { če (frekvenca == beseda. Pogostost { seznam. Dodaj (besedo. Word); } } seznam vračil; }
/// <summary> Vzemi deležnik z določeno težo /// </summary> <ime parameta="vsebina"> vsebina besede, ki jo je treba ločiti</param> <ime parametra="rang"> teža</param> <ime parametra="matchOptions"> Možnosti ujemanja se uporabljajo, ne privzeto</param> <parameter name="matchParameter" > uporabi parameter ujemanja, ne privzeto</param> /// <returns></returns> javni seznam<string> GetSplitWordsByRank(vsebina nizov, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment = nov Segment(); ICollection<WordInfo> words = segment. DoSegment(vsebina, matchOptions, matchParameter);
<string> List list = nov List<string>(); foreach (beseda WordInfo v besedah) { if (rang == beseda. Čin) { seznam. Dodaj (besedo. Word); } } seznam vračil; }
/// <summary> Poudarek /// </summary> <ime parametra="ključna beseda"> niz za označitev</param> <ime parametra="vsebina">vsebina</param> <ime parametra="fragmentSize"> število znakov za vsako polje povzetka</param> <returns>Poudarjena vsebina</returns> javni statični niz HighLight (ključna beseda v nizu, vsebina niza, int fragmentSize) { Ustvarite HTML kodo s parametrom, ki označuje iskalni izraz SimpleHTMLFormatter simpleHTMLFormatter = novi SimpleHTMLFormatter("<font color='red'>", "</font>"); Ustvarite označevanje, vnesite HTML kodo in Pangu objekt Semgent Highlighter highter = novi Highlighter(simpleHTMLFormatter, novi Segment()); Nastavite število znakov za vsako polje povzetka višje. FragmentSize = fragmentSize; string highlightStr = highter. GetBestFragment (ključna beseda, vsebina);
če (niz. IsNullOrEmpty(highlightStr)) { vrni vsebino; } vrni highlightStr; }
}
}
|