System használatával; System.Collections.Generic használatával; a System.Linq használatával; System.Text használatával; System.Threading.Tasks használatával; PanGu.Dict használatával; PanGu.Framework használatával; PanGu.Match használatával; PanGu.Setting használatával; PanGu.HighLight használatával; a Lucene.Net.Analysis használatával; System.IO használatával; PanGu használatával; a System.Configuration használatával;
névtér Pangu.Helper
{ nyilvános osztály PanguHelper {
magán, volatil statikus PanguHelper _instance = null; privát statikus olvasható, csak olvasható objektum lockHelper = új objektum(); private PanguHelper() { }
/// <summary> [Az alapértelmezett jel pangu.xml profilt használ ugyanazon az úton] /// </summary> /// <returns></returns> nyilvános statikus PanguHelper ShareHelper { Fogd { ha (_instance == null) { lock (lockHelper) { ha (_instance == null) { _instance = új PanguHelper(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
visszatérés _instance; } }
/// <summary> Inicializáld a megadott konfigurációs fájlt /// </summary> <param name="configFile"> pangu configuration file</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Kérj egy beszédrész leírást /// </summary> <param name="pos"> hangszövegek felsorolása</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Kapcsoló (pozíció) { Case POS. POS_UNK: "ismeretlen beszédrész" visszaadja; Case POS. POS_D_K: visszaadja a "hátsó komponens"; Case POS. POS_D_H: return "előző komponens"; Case POS. POS_A_NZ: adja vissza a "más tulajdonnév"; Case POS. POS_A_NX: visszatér "idegen karakter"; Case POS. POS_A_NR: adja vissza a "személy nevét"; Case POS. POS_D_Z: return "status word"; Case POS. POS_A_NT: visszatér az "intézmények testülete"; Case POS. POS_A_NS: adja vissza a "helynév"; Case POS. POS_D_Y: return "hangulat szó hangulatmorfém"; Case POS. POS_D_X: "nem morfémiás szót" adnak vissza; Case POS. POS_D_W: "írásjel" adják vissza; Case POS. POS_D_T: visszatérít "Word of Time"; Case POS. POS_D_S: return "place word"; Case POS. POS_D_V: return "ige morfém"; Case POS. POS_D_U: adja vissza "részecskerészecske morfém"; Case POS. POS_D_R: "névmás névmás morfém"; Case POS. POS_A_Q: adja vissza "kvantáló kvantáló morféma"; Case POS. POS_D_P: visszatér "előszó"; Case POS. POS_D_MQ: "kvantifikátor" adják vissza; Case POS. POS_A_M: "numerális, numerális, numerális" adja; Case POS. POS_D_O: visszatér az "onomatopoeia"; Case POS. POS_D_N: "főnévi morféma" visszatér; Case POS. POS_D_F: return "azimuth szó azimut morféma"; Case POS. POS_D_E: return "interjektív morféma"; Case POS. POS_D_L: visszatérítik a "idiómát"; Case POS. POS_D_I: visszatér az "idiom"; Case POS. POS_D_D: adja vissza "adverb adverb morfema"; Case POS. POS_D_C: return "konjunktív konjunktív morfém"; Case POS. POS_D_B: return "a szavak megkülönböztetésére a morfémák megkülönböztetésére"; Case POS. POS_D_A: adja vissza a "melléknev morfémát"; } "ismeretlen beszédrész" visszaadja; }
/// <summary> Szerezd meg az írásmódot [Eredeti Wordinfo] /// </summary> <param name="tartalom"> a szétválasztandó szó tartalma</param> <param name="matchOptions"> használd a matching opciókat</param> <param name="matchParameter"> használd a match paramétert</param> /// <returns></returns> public ICollection<WordInfo> GetSegmentWords(string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Szegmens szegmens = új szegmens(); Ikollection<WordInfo> szavak = szegmens. DoSegment(content, matchOptions, matchParameter); vissza a szavakat; }
/// <summary> Szerezz részt részt /// </summary> <param name="tartalom"> a szétválasztandó szó tartalma</param> <param name="matchOptions"> A match opciók használatosak, nem alapértelmezettben</param> <param name="matchParameter" > a matching paramétert használja, nem alapértelmezett</param> módon public<string> lista GetSplitWords (string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Szegmens szegmens = új szegmens(); Ikollection<WordInfo> szavak = szegmens. DoSegment(content, matchOptions, matchParameter); <string> Lista lista = új List<string>(); foreach (WordInfo szó szóban) { listát. Add (word. Word); } visszaküldési lista; }
/// <summary> Szerezzük meg a megadott szógyakoriság participle-jét /// </summary> <param name="tartalom"> a szétválasztandó szó tartalma</param> <param name="frequency"> szó frekvencia</param> <param name="matchOptions"> A match opciók használatosak, nem alapértelmezettben</param> <param name="matchParameter" > a matching paramétert használja, nem alapértelmezett</param> módon /// <returns></returns> nyilvános<string> lista GetSplitWordsByFrequency (string tartalom, dupla gyakoriság, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Szegmens szegmens = új szegmens(); Ikollection<WordInfo> szavak = szegmens. DoSegment(content, matchOptions, matchParameter);
<string> Lista lista = új List<string>(); foreach (WordInfo szó szóban) { if (gyakoriság == szó. Gyakoriság) { listát. Add (word. Word); } } visszaküldési lista; }
/// <summary> Szerezz egy participlát meghatározott súlysal /// </summary> <param name="tartalom"> a szétválasztandó szó tartalma</param> <param name="rang"> súly</param> <param name="matchOptions"> A match opciók használatosak, nem alapértelmezettben</param> <param name="matchParameter" > a matching paramétert használja, nem alapértelmezett</param> módon /// <returns></returns> nyilvános<string> lista GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Szegmens szegmens = új szegmens(); Ikollection<WordInfo> szavak = szegmens. DoSegment(content, matchOptions, matchParameter);
<string> Lista lista = új List<string>(); foreach (WordInfo szó szóban) { if (rang == szó. Rang) { listát. Add (word. Word); } } visszaküldési lista; }
/// <summary> Kiemelt események /// </summary> <param name="kulcsszó"> a karakterláncot kiemelni</param> <param name="content">content</param> <param name="fragmentSize"> az egyes összefoglaló mezők karaktereinek</param> száma <returns>Kiemelt tartalom</returns> public static string HighLight(string kulcsszó, string tartalom, int fragmentSize) { Készíts egy HTML kódot a keresőkifejezést kiemelő paraméterrel SimpleHTMLFormatter simpleHTMLFormatter = új SimpleHTMLFormatter ("<betűtípus szín='vörös'>", "</font>"); Létrehozz kiemelést, írd be a HTML kódot és Pangu objektumot Semgent Highlighter highter = új Highlighter (simpleHTMLFormatter, új Segment()); Állítsd be az egyes összefoglaló mezők karaktereinek számát magasabb. FragmentSize = fragmentSize; húr highlightStr = magasabb. GetBestFragment(kulcsszó, tartalom);
if (string. IsNullOrEmpty(highlightStr)) { visszaadja a tartalmat; } return highlightStr; }
}
}
|