usando Sistema; usando System.Collections.Generic; usando System.Linq; usando System.Text; usando System.Threading.Tasks; usando PanGu.Dict; utilizzando PanGu.Framework; usando PanGu.Match; usando PanGu.Setting; usando PanGu.HighLight; usando Lucene.Net.Analysis; usando System.IO; usando PanGu; usando System.Configuration;
namespace Pangu.Helper
{ Classe pubblica PanguHelper {
PanguHelper statico volatile privato _instance = nullo; blocco privato statico di solo lettura Aiutante = nuovo oggetto(); privato PanguHelper() { }
/// <summary> [Predefinito usa pangu.xml profilo sotto lo stesso percorso] /// </summary> /// <returns></returns> statico pubblico PanguHelper ShareHelper { Ottieni { if (_instance == null) { Serratura (Aiuto a serratura) { if (_instance == null) { _instance = nuovo PanguHelper(); stringFile di configurazione = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
ritorno _instance; } }
/// <summary> Inizializza il file di configurazione specificato /// </summary> <param name="configFile"> file di configurazione pangu</param> public void Use(stringa configFile) { PanGu.Segment.Init(fileConfig); }
/// <summary> Ottieni una descrizione della sezione del discorso /// </summary> <param name="pos"> enumerazione delle parti del discorso</param> /// <returns></returns> public string: GetPosDescrip{filter}t(POS pos) { Switch (pos) { caso POS. POS_UNK: restituisci "parte del discorso sconosciuta;" caso POS. POS_D_K: ritorno "componente di riportata"; caso POS. POS_D_H: restituire "componente precedente"; caso POS. POS_A_NZ: restituire "altro nome proprio"; caso POS. POS_A_NX: restituire "carattere straniero"; caso POS. POS_A_NR: restituisci "nome della persona"; caso POS. POS_D_Z: restituire "parola di stato"; caso POS. POS_A_NT: restituire "corpo di istituzioni"; caso POS. POS_A_NS: restituisci "nome del luogo"; caso POS. POS_D_Y: restituisci "parola mood morfema"; caso POS. POS_D_X: restituisci "parola non morfemica"; caso POS. POS_D_W: restituire "punteggiatura"; caso POS. POS_D_T: restituire "parola del tempo"; caso POS. POS_D_S: restituire "mettere parola"; caso POS. POS_D_V: restituisci "verbo morfema"; caso POS. POS_D_U: restituisci "morfema particella particella"; caso POS. POS_D_R: restituisci "pronome pronome morfema"; caso POS. POS_A_Q: restituisci "quantificatore morfema"; caso POS. POS_D_P: restituire la "preposizione"; caso POS. POS_D_MQ: restituire "quantificatore"; caso POS. POS_A_M: restituisci "numerale, numerale, cifrale"; caso POS. POS_D_O: restituire "onomatopee"; caso POS. POS_D_N: restituisci "morfema"; caso POS. POS_D_F: restituisci "azimut parola azimut morfema"; caso POS. POS_D_E: restituisci "morfema interiezione"; caso POS. POS_D_L: restituisci "idioma"; caso POS. POS_D_I: restituisci "idiom"; caso POS. POS_D_D: return "avverbio adverbio morfema"; caso POS. POS_D_C: restituire "morfema della congiunzione congiuntiva"; caso POS. POS_D_B: ritorna "distinguere parole per distinguere morfemi"; caso POS. POS_D_A: restituisci "aggettivo morfema"; } ritorna "Parte del discorso sconosciuta"; }
/// <summary> Ottieni il participio [Originale Wordinfo] /// </summary> <param name="content"> il contenuto della parola da separare</param> <param name="matchOptions"> usa le opzioni corrispondenti</param> <param name="matchParameter"> usa il parametro di match</param> /// <returns></returns> public<WordInfo> ICollection GetSegmentWords(stringa content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmento = nuovo Segmento(); <WordInfo> Parole di collettura = segmento. DoSegment (contenuto, matchOptions, matchParameter); rispondere alle parole; }
/// <summary> Ottieni partecipi /// </summary> <param name="content"> il contenuto della parola da separare</param> <param name="matchOptions"> Le opzioni di corrispondenza sono usate, non di default</param> <param name="matchParameter" > usare il parametro corrispondente, non di default</param> Public<string> List GetSplitWords(stringa content, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmento = nuovo Segmento(); <WordInfo> Parole di collettura = segmento. DoSegment(content, matchOptions, matchParameter); <string> Lista lista = nuova Lista<string>(); foreach (WordInfo word in words) { lista. Aggiung(parola. Parola); } elenco dei ritorni; }
/// <summary> Ottieni il participio della frequenza specificata della parola /// </summary> <param name="content"> il contenuto della parola da separare</param> <param name="frequenza"> frequenza delle parole</param> <param name="matchOptions"> Le opzioni di corrispondenza sono usate, non di default</param> <param name="matchParameter" > usare il parametro corrispondente, non di default</param> /// <returns></returns> Lista pubblica<string> GetSplitWordsByFrequency(string content, double frequency, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmento = nuovo Segmento(); <WordInfo> Parole di collettura = segmento. DoSegment (contenuto, matchOptions, matchParameter);
<string> Lista lista = nuova Lista<string>(); foreach (WordInfo word in words) { if (frequenza == parola. Frequenza) { lista. Aggiung(parola. Parola); } } elenco dei ritorni; }
/// <summary> Prendi un participio con un peso specificato /// </summary> <param name="content"> il contenuto della parola da separare</param> <param name="rank"> peso</param> <param name="matchOptions"> Le opzioni di corrispondenza sono usate, non di default</param> <param name="matchParameter" > usare il parametro corrispondente, non di default</param> /// <returns></returns> Public List<string> GetSplitWordsByRank(stringa content, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmento segmento = nuovo Segmento(); <WordInfo> Parole di collettura = segmento. DoSegment (contenuto, matchOptions, matchParameter);
<string> Lista lista = nuova Lista<string>(); foreach (WordInfo word in words) { if (rank == parola. Grado) { lista. Aggiung(parola. Parola); } } elenco dei ritorni; }
/// <summary> Punti salienti /// </summary> <param name="keyword"> la stringa da evidenziare</param> <param name="content">content</param> <param name="fragmentSize"> il numero di caratteri per ogni campo riassunto</param> <returns>Contenuti evidenziati</returns> stringa statica pubblica HighLight (parola chiave stringa, contenuto stringa, int fragmentSize) { Crea un codice HTML con il parametro che evidenzia il termine di ricerca SimpleHTMLFormatter simpleHTMLFormatter = nuovo SimpleHTMLFormatter("<font color='red'>", "</font>"); Crea evidenziamenti, inserisci codice HTML e oggetto Pangu Semgent Evidenziatore più alto = nuovo evidenziatore (simpleHTMLFormatter, nuovo Segmento()); Imposta il numero di caratteri per ogni campo di riassunto più alto. DimensioneFrattamento = DimensioneFrattamento; stringa highlightStr = highter. GetBestFragment (parola chiave, contenuto);
se (stringa. IsNullOrEmpty(highlightStr)) { restituire contenuti; } ritorna highlightStr; }
}
}
|